c++ - 使用 pthread_cond_broadcast 并行执行?

标签 c++ multithreading synchronization posix

我想使用 pthread_cond_broadcast() 唤醒所有等待相同条件的线程。

但是,这些线程似乎不能真正并行运行,因为它们必须共享相同的互斥体。

我说的对吗?或者有什么办法吗?

提前致谢。

最佳答案

每个线程在醒来时都必须获取锁,但如果紧随其后的工作可以并行进行,则只需在安全的最早时间点释放锁即可。

关于c++ - 使用 pthread_cond_broadcast 并行执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17123321/

相关文章:

c++ - 获取总线错误 : 10 with string append

c# - Java 和 C# 中可变语义背后的原因是什么

java - 每秒检查一次时间

c# - 在 .net 中的 lock 语句中调用 Thread.Sleep()

java - ConcurrentHashMap:避免使用 "putIfAbsent"创建额外的对象?

C++11 lambda 作为 std::function 参数传递 - 根据返回类型进行调度

c++ - 检查客户端和服务器之间的延迟

go - 使用 goroutine 和闭包从并发函数读取并发错误

c++ - MinGW 编译错误 - '__off64_t' 没有命名类型

用于上传文件的python并行性