java多线程学习(五)

一、装饰器模式

  1. Collections.synchronizedXXX(集合),返回该集合的同步集合。
  2. 缺点:并发性不高,可能导致遍历操作是线程不安全的。

二、并发集合

并发集合.png
  1. 并发集合的内部实现往往借助于CAS操作或者细粒度锁。
  2. 遍历方式有快照和准实时,前者Iterator不支持remove(),后者支持,且两者在多个线程对同一集合进行遍历时,不适合共享同一个Iterator实例。

三、无状态对象

无状态变量不包含任何实例变量和可更新的状态变量,具有固有的线程安全性。调用其任意方法都需要加锁,但其自身方法的实现可能需要加锁,Servlet通常被设计为无状态变量。

四、不可变对象

类本身以及所有的字段都用final修饰,具有固有的线程安全性。

五、线程特有对象

每个线程仅创建并访问各自的线程特有对象实例,具有固有的线程安全性。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 29,606评论 8 265
  • 在一个方法内部定义的变量都存储在栈中,当这个函数运行结束后,其对应的栈就会被回收,此时,在其方法体中定义的变量将不...
    Y了个J阅读 4,445评论 1 14
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,142评论 1 32
  • 今天我很开心,我觉得今天是快乐的一天。今天妈妈带我出去玩了,我很开心!因为我最喜欢出去玩了。我玩了滑板车...
    张余蔚阅读 206评论 0 0
  • 人这一生说长也长,说短也短,匆匆几十年,从一个呱呱坠地的婴儿变成了一个步履蹒跚的老人,得到了什么又失去了什么,...
    冷不丁啊阅读 480评论 0 0