多執行緒學習3 執行緒互斥與同步通訊

2021-06-04 16:26:36 字數 973 閱讀 2353

1. 執行緒互斥-synchronized關鍵字

a.使用於**塊上:

synchronized(監視器物件)

//code

b.使用於例項方法上:(監視器物件是this

public synchronized void ff()

c.使用於靜態方法上:(監視器物件是位元組碼檔案,即類名.class

public static synchronized void ff()

注意:要想實現互斥,必須保證synchronized的監視器物件相同

2.執行緒同步通訊

需求:子執行緒迴圈10次,接著主線程迴圈100次,再接著子執行緒迴圈10次,接著主線程迴圈100次,如此迴圈50次。

思路:將實現迴圈10次與迴圈100次的兩個方法,構建於乙個類中

**:

class traditionalthreadcommunicationdemo

}}).start();

for(int i=1;i<51;i++)

} class business

catch(exception e)

}for(int i=1;i<11;i++)

flag = true;

this.notify(); //實現執行緒通訊2

} public synchronized void main(int a)

catch(exception e)

}for(int i=1;i<101;i++)

flag = false;

this.notify();

} }}

多執行緒同步與互斥

1.互斥 include include include include include pthread mutex t mutex pthread mutex initializer int lock var 0 time t end time void pthread1 void arg voi...

Linux 多執行緒同步與互斥

在linux的多執行緒同步與互斥中,主要提供了訊號量的同步方式,以及互斥鎖和條件變數等訪問共享資源的方式。訊號量主要用於執行緒間的同步操作,兩個執行緒協同完成一件事情,在乙個執行緒完成乙個動作後,該需要通知另外乙個執行緒,進行相應的操作。1.1 需要包含的標頭檔案 include1.2 定義乙個全域...

執行緒的互斥與同步通訊

當多個執行緒同時操作同乙個物件會出現執行緒安全問題 1.使用synchronized 塊及其原理 2.使用synchronized方法 3.分析靜態方法所使用的同步監視器物件是什麼?4.wait與notify實現執行緒間的通訊 用面試寶典中的子執行緒迴圈10次和主線程迴圈5次,兩種交替執行 50次的...