1.锁住->悲观锁,如synchronized,ReentrantLock等 2.不锁住->乐观锁 如CAS2.锁住同步资源失败,线程要不要阻塞
1.阻塞 2.不阻塞:自旋锁(自旋次数默认10次)和适应性自选锁(自旋的时间次数不固定)3.多线程竞争同步资源的流程细节
1.不锁住资源,多个线程中只有一个能修改资源成功,其他线程会重试 ——无锁 2.同一个线程执行同步资源时,自动获取资源——偏向锁 3.多个线程竞争同步资源时,没有获取资源的线程自旋等待锁释放——轻量级锁 4.多个线程竞争同步资源时,没有获取资源的线程阻塞等待——重量级锁4.多个线程竞争锁时要不要排队
1.排队——公平锁 2.先尝试插队,插队失败在排队——非公平锁(synchronized)5.一个线程中的多个流程能不能获取同一把锁
1.能——可重入锁 2.不能——非可重入锁6.多个线程能不能共享一把锁
1.能——共享锁 2.不能——拍他锁二 死锁产生的四个必要条件
1.互斥使用,即当资源被一个线程占有时,别的线程不能使用
2.不可抢占,资源请求者不能强制从资源占有者手中夺取资源,资源只能由资源占有者主动释放。
3.请求和保持,即当资源请求者在请求其他的资源的同时保持对原有资源的占有。
4.循环等待,即存在一个等待队列:T1占有T2的资源,T2占有t3的资源,T3占有T1的资源。这样就形成了一个等待环路。
PS:只要破坏了其中一个条件,死锁就不会发生



