例4 執行緒的同步

2021-06-04 18:31:04 字數 841 閱讀 2633

先看執行緒不同步的情況:

//資料類

package com.itjob;

public class person

public void get() }

//用來顯示person資料

package com.itjob;

public class consumer implements runnable

public void run() }}

//用來修改person資料

package com.itjob;

public class producer implements runnable

public void run()

else

i = (i+1)%2;

} }}

//主程式類

package com.itjob;

public class threadcom

}

執行的結果如圖:

修改為執行緒同步

只需要修改person類就ok

了,同步只是對資料加鎖,與執行緒無關,當多個執行緒訪問同乙個資料的時候,就要對資料加鎖(同步)

修改後的**如:

//資料類

package com.itjob;

public class person

public synchronized void get()

}

執行的結果不會有男女不分的情況!

4 執行緒同步通訊

子執行緒迴圈10次,接著主線程迴圈100次,接著又回到子執行緒迴圈10次,接著再回到主線程又迴圈100,如此迴圈50,請寫出程式。package cn.itcast.thread public class traditionalcomuication start new thread new run...

執行緒同步一例

功能 主線程建立乙個副執行緒,然後主線程負責將鍵盤輸入的內容寫到buffer,然後通知副執行緒將資料列印,列印完後,副執行緒通知主線程繼續從輸入緩衝區中將讀到的字元寫到buffer陣列。當輸入quit命令時,主線程退出,副執行緒也會隨著主線程的結束而自動結束。include include incl...

JAVA執行緒的同步方法和單例模式執行緒安全筆記

開始時間 2018年8月12日20 09 02 結束時間 2018年8月12日22 44 44 累計時間 2小時 原因 操作同乙個資料中間切換的時候,乙個執行緒操作共享資料的時候,未執行完的情況下 另外的執行緒參與進來,導致安全問題。解決方案 乙個執行緒操作共享資料完畢之後,其他執行緒才可以操作。比...