1. 程式人生 > >多執行緒同步理解(二)——lock鎖方式

多執行緒同步理解(二)——lock鎖方式

  上篇文章,已經提了同步鎖的synchronized的物件鎖和類鎖。這一節我決定研究lock鎖的實現方式。lock鎖可以做到執行緒同步,也就是在多執行緒裡面實現加鎖,同步。

    一、同一個物件同步鎖的區域性lock。

            為同一個物件呼叫同一個方法的時候,會出現執行緒的不安全。此時加上lock的區域性鎖,也就是放在方法裡面,具體程式碼:


顯示的結果為:


表明同一個物件,呼叫同一個方法,如果使用的是區域性lock,就會出現執行緒不安全的情況。資源競爭。

 二、同一個物件同步鎖的全域性lock。

        也就是將鎖lock放在方法的外面,作為全域性的lock鎖。


顯示的結果為:


表明同一個物件,呼叫同一個方法,如果使用的是全域性lock,出現執行緒安全的情況。

 三 、不同物件同步鎖的lock。

不同的物件,呼叫同一個方法,測試程式碼如下:


測試結果為:


上面的結果說明,不同的物件,呼叫同一個lock方法,是鎖不住的。