为什么说一个对象是线程安全的?

info

比如

线程不安全类:hashmap,arraylist

线程安全:stringbuffer,concurrenthashmap

在多线程环境下,对一个对象访问,不需要额外加锁(synchronized),就可以,那这个对象就是线程安全.

比如stringBuffer

因为这个每个方法都加了synchronized。

什么样情况下会发生线程不安全问题?

多个线程访问同一个资源,需要考虑线程安全。

单线程情况不需要考虑。

比如,在多线程环境下,
在一个方法内,
用StringBuilder对字符串进行拼接,
问?这种情况是线程安全还是不安全?

答案:是线程安全。
为什么?
因为多个线程访问,每一个线程独享一个StringBuilder
这是一对一,不是多个线程访问同一个资源
因为StringBuilder不是共享的,是每一个线程私有的,它在方法内。

原文地址:https://www.cnblogs.com/hellosiyu/p/13735380.html