我正在盤旋LinkedBlockingQueue
數百萬個字符串。 當源代碼中沒有更多項目時,閱讀線程應該結束執行。LinkedBlockingQueue中的「轉義」元素
我想過在LinkedBlockingQueue
中輸入一個虛擬值,如"SHUTDOWN"
。
讀者做到這一點:
while ((data = (String)MyLinkedBlockingQueue.take()).equals("SHUTDOWN") == false) {
//read and live
}
其高效執行等於每串?如果不是,我可以用什麼來代替?
不是很好,因爲隊列可以處於空閒狀態一段時間,但源有更多的數據放。 – jullin 2011-12-16 19:15:07
好的。那麼如果你關心equals()的效率,爲什麼不讓SHUTDOWN變成一個常量並且使用'=='進行比較呢? – 2011-12-16 19:17:23