c++ - 检查一定数量的线程是否已完成的任何方法

标签 c++ multithreading locking

我有一个应用程序,我至少需要(为了某些一致性保证)返回 n 个线程中的 k 个。在那之后,我希望其他线程继续运行,但是在 k 个线程完成后,我继续运行。我可以有一个在每个线程结束时递增的变量,然后有一个自旋锁,但我宁愿没有自旋锁。对其他事情有什么建议吗?

最佳答案

I can have a variable that gets incremented at the end of each thread

那行得通。我建议这样做。

and then have a spin lock, but I'd prefer to not have a spin lock

不需要使用自旋锁。等待 condition variable相反。

关于c++ - 检查一定数量的线程是否已完成的任何方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34226098/

相关文章:

c++ - 如何用 c/c++ 填充我的 md5 消息

c++ - 将 int 包装在一个类中会有任何性能损失吗?

java CyclicBarrier 不会因重置而损坏

android - 在 Kotlin 中,处理程序线程会等待另一个线程完成吗?

c# - lock(new object()) -- cargo 崇拜或一些疯狂的 "language special case"?

c++ - 无法使用 while 运行循环

java - 无限循环停止应用程序响应。该怎么办?

linux - 安全卸载内核模块

用于防止多个 JVM 进程多次写入的 Java Filelock 不起作用

python - 从 C++ 应用程序中的嵌入式 Python 调用时,多数组扩展库上的 Numpy 导入失败