1.監(jiān)視器概念:不需要考慮如何加鎖就可以保證多線程的安全性。
監(jiān)視器:只包含私有域,每個(gè)監(jiān)視器對(duì)象有一個(gè)相關(guān)鎖,調(diào)用方法時(shí)獲得鎖,方法返回時(shí)釋放鎖,可以有任意多個(gè)相關(guān)條件。
synchronized方法類似于監(jiān)視器方法,用wait,notify,notifyAll訪問條件變量。
2.volatile:為實(shí)例域的同步訪問,提供了一個(gè)免鎖機(jī)制。不提供原子性
3.final可提供安全的訪問公有域
4.原子性:只對(duì)共享域賦值可用volatile修飾,AtomicInteger提供整形自增自減的原子操作。
5.線程局部變量
ThreadLocal:獲得當(dāng)前線程值
ThreadLocalRandom.current():用于返回當(dāng)前線程Random實(shí)例
6.鎖測(cè)試與超時(shí)
tryLock(),tryLock(time,timeUnit)可打破死鎖情況。
條件也可以設(shè)置超時(shí)await(time,timeUnit)
7讀,寫鎖