c - 多线程自旋锁?

标签 c pthreads

我的守护进程在开始做它的事情之前在四个不同的线程中初始化自己。现在我使用一个计数器,它在线程启动时递增,在线程结束时递减。当计数器达到 0 时,我调用初始化完成回调。

这是首选方法吗,还是有更好的方法?我正在使用 POSIX 线程 (pthread),我只是运行一个 while 循环等待计数器达到 0。

编辑:pthread_barrier_* 函数在我的平台上不可用,尽管它们似乎是最佳选择。

编辑 2: 并非所有线程都退出。一些初始化然后监听事件。基本上线程需要说,“我完成了初始化”。

最佳答案

障碍是您所需要的。它们是为此而创建的,当您需要在某些点“见面”然后再继续。参见 pthread_barrier_t*

关于c - 多线程自旋锁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6139331/

相关文章:

无法在 "C"中找到变量的空间(100 字节)

c - 如何使用 libnl-route 设置 netem qdisc 和 tbf qdisc?

c - 指向结构体的指针

c - 将 shell "*"实现到 C 程序中

c - 多线程程序未产生所需的输出

c - undefined reference 而不是 makefile

c - 将结构作为参数传递给 pthread

C pthread 从多个线程访问数组

c++ - 死锁和/或在线程死之前返回

c - 如何为一组 pthreads 共享互斥锁?