我的守护进程在开始做它的事情之前在四个不同的线程中初始化自己。现在我使用一个计数器,它在线程启动时递增,在线程结束时递减。当计数器达到 0 时,我调用初始化完成回调。
这是首选方法吗,还是有更好的方法?我正在使用 POSIX 线程 (pthread
),我只是运行一个 while
循环等待计数器达到 0。
编辑:pthread_barrier_*
函数在我的平台上不可用,尽管它们似乎是最佳选择。
编辑 2: 并非所有线程都退出。一些初始化然后监听事件。基本上线程需要说,“我完成了初始化”。
最佳答案
障碍是您所需要的。它们是为此而创建的,当您需要在某些点“见面”然后再继续。参见 pthread_barrier_t*
关于c - 多线程自旋锁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6139331/