1.监视器概念:不需要考虑如何加锁就可以保证多线程的安全性。
监视器:只包含私有域,每个监视器对象有一个相关锁,调用方法时获得锁,方法返回时释放锁,可以有任意多个相关条件。
synchronized方法类似于监视器方法,用wait,notify,notifyAll访问条件变量。
2.volatile:为实例域的同步访问,提供了一个免锁机制。不提供原子性
3.final可提供安全的访问公有域
4.原子性:只对共享域赋值可用volatile修饰,AtomicInteger提供整形自增自减的原子操作。
5.线程局部变量
ThreadLocal:获得当前线程值
ThreadLocalRandom.current():用于返回当前线程Random实例
6.锁测试与超时
tryLock(),tryLock(time,timeUnit)可打破死锁情况。
条件也可以设置超时await(time,timeUnit)
7读,写锁