java.util.concurrent.locks
接口Lock
publci interface Lock
Lock 實現提供了比使用synchronized方法和語句可獲得的更加廣泛的鎖定操作,
此實現允許更靈活的結構,可以具有差別很大的屬性,可以、支持多個相關的Condition對象。
鎖是多個線程對共享資源的訪問工具,通常,所提供了對共享資源的獨占訪問。
一次只可以有一個線程訪問共享資源,不過某些鎖提供對共資源的並發訪問,如:
ReadWriterLock的讀取鎖。
synchronized 方法或語句的使用提供了對與每個對象相關的隱式監視器鎖的訪問,
但卻強制所有鎖獲取和釋放均要出現在一個塊結構中:當獲取了多個鎖時,
它們必須以相反的順序釋放,且必須在與所有鎖被獲取時相同的詞法范圍內釋放所有鎖。

//使用ThreadLocal類來管理共享資源
public class ThreadLcoal<T> extends Object
該類提供了線程局部(thread-local)變量。這些變量不同與普通變量對應的物
因為訪問該個變量(通過其get或set方法)的每個線程都有自己的局部變量,
他獨立與變量初始化副本。ThreadLocal實例通常是類中的private static 字段
他們希望將狀態與某一線程(例如:用戶ID,事物ID)相關聯
相當於每個線程訪問這個縣城局部變量,就自動為每個線程復制一份獨立的副本,每個線程同過修改這個副本,
而不對其他線程訪問這個局部線程變量的影響。(各自維護自己的局部線程變量副本,
就像本例中每個客戶都想賬戶存100元,而賬戶初始100元,結果賬戶余額都是200元,說明線程只維護各自的副本)(總余額應為300元)


結果:

