|
1
6
您需要同步对任何对象的访问,其中
实现同步有多种方法:锁(互斥锁)和原子可能是最常用的两种方法,尽管有些数据结构有无锁实现。
任何const限定的成员函数都应该可以安全地调用。 赫伯·萨特写过 a whole series of articles on Effective Concurrency 你可能会觉得有用。他讨论了各种设计模式、常见缺陷、锁层次结构和其他并发主题。 |
|
|
2
2
对。只读访问可以 从未 生成多线程冲突。 |
|
|
3
1
互斥锁和条件变量是“多线程工具链”的一部分,用于实现多线程应用程序。因此,根据定义,它们是“线程安全的”。
在这种情况下,您需要在保持互斥量的情况下操纵条件变量,以避免出现这种竞争条件。
简单(如字节缓冲区或C样式结构)可以同时安全地访问。任何变化的对象都需要同步。
据我所知,标准的C++库包通常不是线程安全的。 |
|
|
4
0
通常,您会让其他线程等待条件而不是锁,但如果这样做,则获取锁的线程将阻止被条件唤醒的线程获取锁,并且发出信号的线程将不是继续的线程,而是等待锁。 这是典型的使用模式: Boost Conditions |
|
|
user107586 · 如何处理等待句柄不会导致无限循环? 1 年前 |
|
|
ron burgundy · 获取-释放语义是否跨线程传递?[副本] 1 年前 |
|
|
BenjiFB · C#内存缓存:在一次操作中追加到列表? 1 年前 |
|
|
András Takács · Python多线程问题 1 年前 |
|
|
András Takács · Python多线程错误 1 年前 |