继续执行另一个线程
Continue executing another thread
我目前正在玩WinAPI,我已经开始线程。我的程序有相互协作的n
线程。有一个主线程,它将一些数据写入特定的内存位置,并等待使用特定内存位置的线程处理这些数据。然后再重复整个过程,不终止任何线程。
我的问题是忙于等待第二个线程浪费了太多时间。是否有任何方法挂起当前线程(为其他线程留出时间)或以不同的方式解决此问题?
请帮。
我猜你目前正在轮询/忙等待在你的主线程,不断检查一些完成标志的状态工作线程将设置。正如您注意到的,这是不可取的,因为您使用了一定比例的cpu带宽来等待工作线程完成。在某些情况下,这将减少您的工人计划的时间,延迟其完成。
与此相反,你可以使用一个同步对象,比如Event或Semaphore,让主线程处于休眠状态,直到worker发出完成信号。
您可以使用同步对象,如互斥锁,信号量事件等同步和WaitForSingleObject/WaitForMultipleObject API线程等待。
相关文章:
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- 从C++11中的线程返回一个值
- qt多线程:计算一个积分
- volatile变量在一个客户线程和一个生产者线程中是否安全
- C++ pthread,两个线程读取一个全局变量
- 如何启动一个 boost::线程运行一个成员函数
- 如果另一个线程将一个元素推到向量的末尾,则向量上的迭代器无效
- Qt::线程是一个库还是仅仅是一个类
- 当一个线程锁定一个大映射时,如何避免冻结其他线程
- C++-如何让多个线程写入一个文件
- 为什么我的线程被一个关键部分阻塞,而没有被任何东西抓住
- 一个线程读一个线程写,std::deque是安全的
- 从c++线程发出一个信号
- 通信b/w两个线程在一个公共的数据结构.设计问题
- 如何使用boost运行线程另一个对象函数与回调
- 我可以在OpenMP分配多个线程到一个代码段
- 当我从线程B读取相同的变量时,我能从线程a写入一个变量吗
- 线程中一个套接字发送/接收
- 跨线程发送一个glib信号
- 用一个插入线程和一个读线程映射并发性