关于STL线程的问题
我知道STL是线程不安全的
比如我有两个线程对同一个list对象做push_back操作.压入的数据只是一个指针.
除去数据不同步的隐患之后(根本不需要数据同步),
在这种情况下,会不会因为在某个时刻,两个线程同时push_back,一个线程刚压入2个字节,
后一个线程抢夺过去,压入另一个指针导致数据紊乱,或者程序崩掉.
其实问题说得简单点就是.push_back是不是原子操作.
比如我有两个线程对同一个list对象做push_back操作.压入的数据只是一个指针.
除去数据不同步的隐患之后(根本不需要数据同步),
在这种情况下,会不会因为在某个时刻,两个线程同时push_back,一个线程刚压入2个字节,
后一个线程抢夺过去,压入另一个指针导致数据紊乱,或者程序崩掉.
其实问题说得简单点就是.push_back是不是原子操作.
...全文
相关推荐
c++ stl线程安全
理解并处理STL的线程安全问题是C++多线程编程中的重要一环,尤其在涉及到跨进程或DLL交互时。正确地同步和管理共享数据是避免问题的关键。
stl线程安全
然而,STL在设计之初并没有考虑多线程环境下的线程安全性问题。这意味着,当我们在多线程环境中使用STL提供的容器时,如果不采取适当的措施,就可能会引发竞态条件、死锁等问题。
SGI-STL源码移植
- **线程安全**:如果你的项目是多线程环境,需要确保Allocator是线程安全的。总之,移植SGI-STL的Allocator是一个技术性强且需要谨慎对待的任务。
线程、排序、操作系统、c++stl经典.uml
这些都是计算机科学和软件开发中的基础且重要的知识点,对于提升编程技能和解决问题具有极大的价值。
Linux线程同步与互斥2[源码]
STL容器如vector、list、map等在多线程环境下,如果不加任何线程同步机制直接操作,可能会出现数据不一致的问题。


