线程安全
-
–在拥有共享数据的多条线程并行执行的程序中, 线程安全的代码会通过同步机制保证各个线程都可以正常且正确的执行, 不会出现数据污染等意外的情况
-
–可以选择使用synchronized来保证线程安全
线程安全与不安全的区别
-
–线程安全:
- –优点: 可靠
- –缺点:执行速度慢
- –使用建议:需要线程共享时使用
-
–线程不安全:
- – 优点: 速度快
- – 缺点: 可能与预期不符合
- –使用建议: 在线程内部使用, 无需线程间共享
线程不安全的类
- –
Vector
是线程安全的,ArrayList, LinkedList
是线程不安全的- –Vector中
addElement()
方法是用synchronized
修饰的 - –ArrayList等中的
add
是没有用synchronized
修饰的
- –Vector中
- –
Properties是线程安全的
,HashSet, TreeSet, HashMap
是不安全的 - –
StringBuffer
是线程安全的,StringBuilder
是线程不安全的 - –
HashTable
是线程安全的,HashMap
是线程不安全的