java多线程学习(五)

一、装饰器模式

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

二、并发集合

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

三、无状态对象

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

四、不可变对象

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

五、线程特有对象

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

你可能感兴趣的:(java多线程学习(五))