C ++ 11线程睡眠/唤醒没有锁?

时间:2019-10-31 01:28:45

标签: multithreading c++11

我在两个线程之间使用无锁队列。一种产生数据,另一种消耗数据。我想做的是,当队列为空时,使用者线程产生cpu直到生产者线程将数据推送到队列中。我认为我无法调用sleep(),因为无法唤醒睡眠线程。我发现的是std :: condition_variable,但是它需要一个互斥体。生产者线程需要持有锁,然后在每次推送数据时通知消费者线程。有没有更好,更轻松的方法来实现我的目标?

0 个答案:

没有答案