執行緒的同步問題

2021-10-19 10:10:52 字數 488 閱讀 9393

執行緒的同步問題

多執行緒程式設計中容易出現錯誤情況,這是由系統的執行緒排程具有一定隨機性造成的,這些情況必須杜絕。

- 執行緒的執行順序不可重現,但是執行結果一定可重現

- 解決方案就是同步處理

同步的處理方法

當存在多個執行緒操作共享資料時,需要保證同一時刻有且只有乙個執行緒在操作共享資料,其他執行緒必須等到該執行緒處理完資料後再進行,這種方式有個名稱叫互斥鎖,即能達到互斥訪問目的的鎖,也就是說當乙個共享資料被當前正在訪問的執行緒加上互斥鎖後,在同乙個時刻,其他執行緒只能處於等待的狀態,直到當前執行緒處理完畢釋放該鎖。

具體程式設計中使用synchronized關鍵字可以使用互斥鎖。

synchronized將並行改為序列,當然會影響程式的執行效率,執行速度會受到影響。其次synchronized操作執行緒的堵塞,也就是由作業系統控制cpu的核心進行上下文的切換,這個切換本身也是耗時的。所以使用synchronized關鍵字會降低程式的執行效率。

執行緒同步問題

昨天簡單研究了一點執行緒的同步問題 package com.pb.thread public class waymakethread 建立乙個執行緒,繼承thread類 class mythread extends thread 建立乙個類,實現runable介面,這不是乙個執行緒類 class m...

執行緒同步問題

多個執行緒在執行的過程中的不確定性引起執行結構的不穩定,同時多個執行緒對同一資料的共享操作,造成操作的不完整性,破壞資料。當某個執行緒在操作車票過程中,尚未操作完成時,其他執行緒也參與進來,操作車票,使車票的資料共享,出現執行緒安全問題。那麼可以通過同步 塊和同步方法的方式來解決執行緒安全問題,實現...

執行緒同步問題

建立多執行緒實現3個視窗賣票,一共30張票,每個視窗各賣10張,一次賣一張 執行緒同步 public class ticketdemo3 class station1 extends thread else try catch interruptedexception e 編寫兩個執行緒,乙個執行緒...