线程安全就是说多线程访问同一代码,不会产生不确定的结果。编写线程安全的代码是低依靠线程同步。
那么Java中哪些类已经是线程安全的,即不需要另外使用同步锁。
HashTable是线程安全的,HashMap不是线程安全的
ConcurrentLinkedQueue是线程安全的,是基于链表实现的,所以他的size方法会遍历整个链表,所以不建议使用size方法
ArrayList不是线程安全的,
StringBuffer是线程安全,StringBuilder不是线程安全
访问线程不安全的变量是需要使用同步锁,或者在使用ArrayList,Set之类不安全的集合时还可以使用collections.synchronizedlist()
collections.synchronizedSet(),collections.synchronizedmap();将不安全的集合转换成线程安全的集合