美文网首页
线程封闭

线程封闭

作者: 文刀雨 | 来源:发表于2021-03-18 00:09 被阅读0次

    把对象封装到一个线程里

    • Ad-hoc 线程封闭:程序控制实现,最糟糕,忽略
    • 堆栈封闭:局部变量,无并发问题(局部变量)
    • ThreadLocal 线程封闭: 特别好的封闭方法
    线程不安全 线程安全
    StringBuilder StringBuffer
    SimpleDateFormat JodaTime
    ArrayList,HashSet,HashMap等Collection

    同步容器

    线程不安全 同步容器类(不代表线程安全)
    ArrayList Vector,Stack
    HashMap HashTable(key,value不能为null)
    List,Set,Map Collections.synchronizedXXXX(List,Set,Map)

    在 iterator 和foreach 中的remove操作会出现
    java.util.ConcurrentModificationException
    改用 for循环

    并发容器J.U.C
    java.util.concurrent

    容器 并发容器
    ArrayList CopyOnWriteArrayList(建议在读多写少的场景使用)
    HashSet,TreeSet CopyOnWriteArraySet,ConcurrentSkipListSet
    HashMap,TreeMap ConcurrentHashMap,ConcurrentSkipListMap

    安全共享策略
    线程限制: 一个被线程限制的对象,由线程独占,并且只能被占有它的线程修改
    共享只读:一个共享只读的对象,在没有额外同步的情况下,可以被多个线程并发访问,但是任何线程都不能修改它
    线程安全对象: 一个线程安全的对象或者容器,在内部通过同步机制来保证线程安全,所以其他线程无需额外的同步就可以通过公共接口 随意访问它。
    被守护对象:被守护对象只能通过获取特定的锁来访问

    相关文章

      网友评论

          本文标题:线程封闭

          本文链接:https://www.haomeiwen.com/subject/bphquktx.html