C++thread的间的交互(不完美的两种线程等待处理任务的方法)(C++多线程相关)

有的时候开线程并不需要线程马上去做一些事情需要满足一定条件才做,比如接收网络数据包需要线程进入等待

printf是默认线程安全的,在单个函数下运行是不会出错的,cout没这个保证
用while死循环判断线程是否该做某些事CPU占用率会变得非常高
C++thread的间的交互(不完美的两种线程等待处理任务的方法)(C++多线程相关)
一种解决方法是在while循环里让线程释放CPU资源但不一定生效,因为可能当一个线程释放资源后马上被其他线程抢占了
C++thread的间的交互(不完美的两种线程等待处理任务的方法)(C++多线程相关)

另一种方法添加一个时间片,过一段时间执行while循环
C++thread的间的交互(不完美的两种线程等待处理任务的方法)(C++多线程相关)