如何處理多線程併發的問題

多線程應用程序同時訪問共享對象時,因爲線程間相互搶佔CPU的控制權,形成一個線程夾在另外一個線程的執行過程當中運行,因此可能致使錯誤的執行結果。多線程

爲了防止共享對象在併發訪問時出現錯誤,Java中提供了「synchronized」關鍵字。併發

可是因爲會與到一些情況,形成死鎖現象,那麼能夠經過調用一個被同步的方法,並讓這個方法調用wait()。線程

每當一個方法返回某個對象的鎖時,它應當調用notifyAll()來讓等待隊列中的其餘線程有機會執行。對象

記住wait()和notify()/notifyAll()是Object類方法,而不是Thread類的方法。仔細查看每次調用wait()方法,都有相應的notify()/notifyAll()方法,且它們均做用於同一個對象。隊列

相關文章
相關標籤/搜索