什么是线程安全

╄→尐↘猪︶ㄣ 提交于 2019-12-01 03:46:49

【定义】:无论是在多线程还是在单线程下执行结果永远一致,就是线程安全的
【特点】:

  • 不可变
    例如String、Integer、Long这种类,都是final修饰的,任何线程都无法改变其值,除非新建,所以不可变对象可以直接在多线程环境下使用。
  • 绝对线程安全
    例如CopyOnWriteArrayList(ArrayList线程安全变体)、CopyOnWriteArraySet(java.util.AbstractSet的子类)
  • 相对线程安全
    例如Vector,其add、remove方法都是原子操作,如果有个线程正在遍历此
    Vector,同时有个线程在操作此Vector,多数情况下都会出现ConcurrentModificationException,也就是fail-fast机制。
  • 线程不安全
    例如ArrayList、LinkedList、HashMap
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!