线程安全的定义

1.1.1 线程安全的定义

依据[JCP],一个线程安全的class 应当满足以下三个条件:

多个线程同时访问时,其表现出正确的行为。

无论操作系统如何调度这些线程, 无论这些线程的执行顺序如何交织(interleaving)。

调用端代码无须额外的同步或其他协调动作。

依据这个定义,C++ 标准库里的大多数class 都不是线程安全的,包括std::string、std::vector、std::map 等,因为这些class 通常需要在外部加锁才能供多个线程同时访问。

posted @ 2017-08-20 02:39  菊次郎的幻想  阅读(334)  评论(0编辑  收藏  举报

begin