5 c++ windows multithreading mutex
如果我只有一个读者和一个作家,我需要互斥吗?读取器food.front()从队列中获取下一个command()并根据该命令执行任务.执行命令后,它会弹出命令.队列的编写者将命令推送到队列(food.push())上.
我需要互斥锁吗?我的读者(消费者)只执行if food.size() > 0.我正在使用读者线程并发送线程.
GMa*_*ckG 10
互斥锁用于多线程环境.我在你的问题中没有提到线程,所以我认为不需要互斥锁.
但是,如果我们假设读者和编写者意味着你有两个线程,则需要使用互斥锁(或其他多线程保护方案)保护相互数据.
当队列有项目时会发生什么,并且当编写器线程放入某些内容时,读取器线程会弹出一些内容?灾害!使用互斥锁,您将确保一次只有一个线程在队列中运行.
另一种方法是无锁线程安全队列.它将使用原子操作来确保不会错误地操作数据.
| 归档时间: |
|
| 查看次数: |
2058 次 |
| 最近记录: |