執行緒8把鎖

2022-05-14 04:35:52 字數 977 閱讀 2511

一、

/*

* 題目:判斷列印的 "one" or "two" ?

* * 1. 兩個普通同步方法,兩個執行緒,標準列印, 列印? //one two

* 2. 新增 thread.sleep() 給 getone() ,列印? //one two

* 3. 新增普通方法 getthree() , 列印? //three one two

* 4. 兩個普通同步方法,兩個 number 物件,列印? //two one

* 5. 修改 getone() 為靜態同步方法,列印? //two one

* 6. 修改兩個方法均為靜態同步方法,乙個 number 物件? //one two

* 7. 乙個靜態同步方法,乙個非靜態同步方法,兩個 number 物件? //two one

8. 兩個靜態同步方法,兩個 number 物件? //one two

* * 執行緒八鎖的關鍵:

* ①非靜態方法的鎖預設為 this, 靜態方法的鎖為 對應的 class 例項

* ②某乙個時刻內,只能有乙個執行緒持有鎖,無論幾個方法。

*/

例子、

public class testthread8monitor  

}).start();

new thread(new runnable()

}).start();

/*new thread(new runnable()

}).start();*/}}

class number catch (interruptedexception e)

system.out.println("one");

}public synchronized void gettwo()

public void getthree()

}

執行緒與程序 執行緒三把鎖

學習三把鎖時候我們需要先知道為什麼要有三把鎖 全域性資源 counter 被搶占的情況,問題產生的原因就是沒有控制多個執行緒對同一資源的訪問,對資料造成破壞,使得執行緒執行的結果不可預期。這種現象稱為 執行緒不安全 在開發過程中我們必須要避免這種情況,那怎麼避免?這就用到了我們在綜述中提到的互斥鎖了...

JUC學習之執行緒8鎖

介紹執行緒8鎖圍繞乙個題目展開,題目 列印的是 one 還是 two 1.兩個普通同步方法,兩個執行緒,列印?public class testthread8monitor start new thread new runnable start class number public synchro...

監視鎖 Lock 限制執行緒個數的一把鎖

為什麼要用鎖?在多執行緒中,尤其是靜態資源的訪問,必然會有競爭 private static int nums 0 private static object mylock new object static void method12 static void testmethod lock是mon...