嗨大家好我想知道线程安全数据和线程安全容器之间有什么区别
答案 0 :(得分:4)
线程安全数据:
通常是指使用互斥,信号量或其他类似结构保护的数据。
如果已采取措施确保:
,则数据被视为线程安全当一个线程正在修改共享数据时,互斥锁通常通过阻止对其他线程的访问来工作。这也称为关键部分,RAII是与关键部分结合使用的常见设计模式。
根据CPU类型,某些原始数据类型(例如int)和操作(增量)可能不需要互斥保护(例如,如果它们解析为机器语言的原子指令)。但是:
线程安全容器:
是否有适当措施的容器,以确保以线程安全的方式对其进行任何更改。
例如,线程安全容器可以允许使用一组特定的公共方法插入或删除项目,这些方法确保使用它的任何代码都是线程安全的。
换句话说,容器类将互斥锁保护作为服务提供给调用者,用户不必自己滚动。