在說線程間的協作之前,先了解線程的幾個狀態,所謂協作就是改變線程的狀態,Java中線程中狀態可分爲五種:New(新建狀態),Runnable(就緒狀態),Running(運行狀態),Blocked(阻塞狀態),Dead(死亡狀態)。
歸屬於object的三個方法:wait/notify/notifyAll
notify/notifyAll最主要的區別:前者喚醒一個等待線程,後者喚醒所有線程
歸屬於Thread的三個方法:sleep/yield/join
wait和sleep的區別除了歸屬不一樣,最主要的是前者釋放鎖,後者不釋放
yield,它是個謙謙君子,最主要的功用就是謙讓,然後再公平獲取鎖資源
join,它就是等待其他線程結束,自己再繼續操作。