1condition 介紹及demo
Condition是在java 1.5中才出現(xiàn)的豫缨,它用來替代傳統(tǒng)的Object的wait()奔则、notify()實現(xiàn)線程間的協(xié)作,相比使用Object的wait()辑奈、notify()进萄,使用Condition的await()、signal()這種方式實現(xiàn)線程間協(xié)作更加安全和高效磁玉。因此通常來說比較推薦使用Condition停忿,阻塞隊列實際上是使用了Condition來模擬線程間協(xié)作。
Condition是個接口蚊伞,基本的方法就是await()和signal()方法席赂;
Condition依賴于Lock接口,生成一個Condition的基本代碼是lock.newCondition()
調(diào)用Condition的await()和signal()方法时迫,都必須在lock保護(hù)之內(nèi)颅停,就是說必須在lock.lock()和lock.unlock之間才可以使用
Conditon中的await()對應(yīng)Object的wait();
Condition中的signal()對應(yīng)Object的notify()掠拳;
Condition中的signalAll()對應(yīng)Object的notifyAll()癞揉。