1
6
您需要同步对任何对象的访问,其中
实现同步有多种方法:锁(互斥锁)和原子可能是最常用的两种方法,尽管有些数据结构有无锁实现。
任何const限定的成员函数都应该可以安全地调用。 赫伯·萨特写过 a whole series of articles on Effective Concurrency 你可能会觉得有用。他讨论了各种设计模式、常见缺陷、锁层次结构和其他并发主题。 |
2
2
对。只读访问可以 从未 生成多线程冲突。 |
3
1
互斥锁和条件变量是“多线程工具链”的一部分,用于实现多线程应用程序。因此,根据定义,它们是“线程安全的”。
在这种情况下,您需要在保持互斥量的情况下操纵条件变量,以避免出现这种竞争条件。
简单(如字节缓冲区或C样式结构)可以同时安全地访问。任何变化的对象都需要同步。
据我所知,标准的C++库包通常不是线程安全的。 |
4
0
通常,您会让其他线程等待条件而不是锁,但如果这样做,则获取锁的线程将阻止被条件唤醒的线程获取锁,并且发出信号的线程将不是继续的线程,而是等待锁。 这是典型的使用模式: Boost Conditions |
Andre · Boost日志琐碎自动刷新 6 年前 |
Vitor · 如何使用boost::bind追加参数? 6 年前 |
slepasteur · 提高MSM编译速度 6 年前 |
werk jlcv · 如何快速删除数百万个文件 6 年前 |
hromer · 我的Boost正则表达式与任何内容都不匹配 6 年前 |
user997112 · 使用互斥量和条件变量跨内存提升进程间共享向量 6 年前 |