线程安全的定义

Posted 菊次郎的幻想

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线程安全的定义相关的知识,希望对你有一定的参考价值。

1.1.1 线程安全的定义

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

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

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

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

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

以上是关于线程安全的定义的主要内容,如果未能解决你的问题,请参考以下文章

Java 并发 – 线程安全?

线程安全的定义

如何创建线程?如何保证线程安全?

如何保证集合是线程安全的?

线程安全性

多线程并发为什么不安全