为什么说一个对象是线程安全的?
info
比如
线程不安全类:hashmap,arraylist
线程安全:stringbuffer,concurrenthashmap
在多线程环境下,对一个对象访问,不需要额外加锁(synchronized),就可以,那这个对象就是线程安全.
比如stringBuffer
因为这个每个方法都加了synchronized。
什么样情况下会发生线程不安全问题?
多个线程访问同一个资源,需要考虑线程安全。
单线程情况不需要考虑。
比如,在多线程环境下,
在一个方法内,
用StringBuilder对字符串进行拼接,
问?这种情况是线程安全还是不安全?
答案:是线程安全。
为什么?
因为多个线程访问,每一个线程独享一个StringBuilder
这是一对一,不是多个线程访问同一个资源
因为StringBuilder不是共享的,是每一个线程私有的,它在方法内。
我对任何唾手而得,快速,出自本能,即兴,含混的事物没有信心。我相信缓慢,平和,细水长流的力量,踏实,冷静。我不相信缺乏自律精神和不自我建设,不努力,可以得到个人或集体的解放。