天天看點

線程的同步

線程同步

當兩個或多個線程共用同一批資料時,可能發生混亂比如,當一個線程需要處理一批賬單,如果另一個線程也要處理相同的賬單,可能會出現混亂的局面這時,需要進行線程同步的處理線程同步的關鍵字是synchronized一個方法使用關鍵字synchronized修飾後,如果某個線程獲得CPU的使用權去使用該方法,CPU會讓它執行完同步方法中的所有任務在這期間,CPU不會把時間片配置設定給其他也要使用同步方法的線程

在同步方法中使用wait()

1.當一個線程使用的同步方法中用到某個變量,而此變量又需要其它線程修改後才能符合本線程的需要,那麼可以在同步方法中使用wait()方法

2.使用wait()方法可以使本線程等待,暫時讓出CPU的使用權,并允許其它線程使用這個同步方法

在同步方法中使用notify()和notifyAll()

1.其它線程如果在使用同步方法時不需要等待,那麼它使用完這個同步方法後,應當用notifyAll()方法通知所有的由于使用這個同步方法而處于等待的線程結束等待

2.如果使用notify(),是通知處于等待中的線程的某一個結束等待

繼續閱讀