线程安全就是说多线程访问同一代码,不会产生不确定的结果。编写线程安全的代码是低依靠线程同步。

那么Java中哪些类已经是线程安全的,即不需要另外使用同步锁。

HashTable是线程安全的,HashMap不是线程安全的

ConcurrentLinkedQueue是线程安全的,是基于链表实现的,所以他的size方法会遍历整个链表,所以不建议使用size方法

ArrayList不是线程安全的,

StringBuffer是线程安全,StringBuilder不是线程安全


访问线程不安全的变量是需要使用同步锁,或者在使用ArrayList,Set之类不安全的集合时还可以使用collections.synchronizedlist()

collections.synchronizedSet(),collections.synchronizedmap();将不安全的集合转换成线程安全的集合