上節(jié)介紹了多線程之間競爭訪問同一個資源的問題及解決方案synchronized,我們提到,多線程之間除了競爭,還經(jīng)常需要相互協(xié)作,本節(jié)就來介紹Java中多線程協(xié)作的基本機制wait/notify。

都有哪些場景需要協(xié)作?wait/notify是什么?如何使用?實現(xiàn)原理是什么?協(xié)作的核心是什么?如何實現(xiàn)各種典型的協(xié)作場景?由于內(nèi)容較多,我們分為上下兩節(jié)來介紹。

我們先來看看都有哪些協(xié)作的場景。

協(xié)作的場景

多線程之間需要協(xié)作的場景有很多,比如說: