執行緒的互斥與同步通訊

2021-07-22 18:00:37 字數 1603 閱讀 5663

當多個執行緒同時操作同乙個物件會出現執行緒安全問題

1.使用synchronized**塊及其原理

2.使用synchronized方法

3.分析靜態方法所使用的同步監視器物件是什麼?

4.wait與notify實現執行緒間的通訊

--》用面試寶典中的子執行緒迴圈10次和主線程迴圈5次,兩種交替執行

50次的例子進行講解。(要用到共同資料報括同步鎖的若干個方法應該

歸在同乙個類身上,這種設計正好體現了高類聚和程式的健壯性。)

下面用**的形式講解上面的知識點:

package thread;

public class synchronizedtest catch (interruptedexception e)

outputer.output("xiaoming");}}

}).start();    

new thread(new runnable() catch (interruptedexception e)

outputer.output("yeyongli");}}

}).start();        

}public static void main(string args)

class outputer catch (interruptedexception e)

outputer.output("xiaoming");}}

}).start();    

new thread(new runnable() catch (interruptedexception e)

outputer.output2("yeyongli");}}

}).start();        

}public static void main(string args)

class outputer catch (interruptedexception e)

outputer.output("xiaoming");}}

}).start();    

new thread(new runnable() catch (interruptedexception e)

outputer.output3("yeyongli");}}

}).start();        

}public static void main(string args)

static class outputer}}

).start();

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

class business catch (interruptedexception e)

}for(int j=1;j<=10;j++)

bshouldsub = false;

this.notify();

}public synchronized void main(int i) catch (interruptedexception e)

}for(int j=1;j<=100;j++)

bshouldsub = true;

this.notify();}}

執行緒的互斥與同步通訊

案例 子執行緒迴圈10次,主線程迴圈5次,兩者交替執行50次 package thread public class traditionalthreadcommunication start for int i 1 i 50 i class bussiness catch interruptedex...

執行緒同步互斥通訊問題之互斥

執行緒同步互斥通訊問題之互斥 使用wait 和notify 實現執行緒之間的通訊。要用到同步鎖 同一資料或者同一演算法的方法都盡量放在同乙個類中 程式的健壯性 高類聚 package martina.traditionalthread public class traditionalthreadco...

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

1.執行緒互斥 synchronized關鍵字 a.使用於 塊上 synchronized 監視器物件 code b.使用於例項方法上 監視器物件是this public synchronized void ff c.使用於靜態方法上 監視器物件是位元組碼檔案,即類名.class public st...