Java线程安全策略

不可变

  • final

  • 事实不可变

  • 如String

无状态

  • 没有实例域

  • 如Servlet

volatile

  • 运算结果不依赖当前变量值

  • 不参与不变性约束

  • 如AQS的state

线程封闭

  • 线程栈内私有,方法中局部变量的使用

  • ThreadLocal,相当月Map

J.U.C工具包

  • 以Concurrent前缀的并发类,如ConcurrentHashMap

  • 含有Blocking的阻塞类,如LinkedBlockingDeque

  • 以Atomic为前缀的原子变量类,如AtomicInteger

  • 辅助工具类,如CountDownLatch

同步锁

  • synchronized

  • ReentrantLock

  • ReentrantReadWriteLock

你可能感兴趣的:(java,线程安全)