我哈瓦使用緩衝器圍繞線程之間傳遞對象的Java應用程序。通常我使用BufferUtils同步這些緩衝區。如果我只有一個將對象添加到緩衝區的線程,並且只添加了一個線程,並且只有一個線程將對象從緩衝區中刪除,並且僅刪除;它們之間的緩衝區是否需要同步?如果只有一個線程添加並且只有一個(不同)線程刪除,您是否需要同步緩衝區?
我現在有一個情況有關的兩個線程都從春豆實例化,並且只能由具有它們都參考緩衝區中的第三個bean得到他們的手共享緩存。我無法弄清楚如何從一個bean創建一個同步緩衝區,因此這個問題是否有必要。
謝謝,這正是我所需要的。另外,它確實有一些非常好的超時添加對象的方法,布爾返回而不是捕獲BufferOverflow。非常好,謝謝! – tdimmig 2012-03-01 17:39:45
這幾乎是第二個問題,但幾乎沒有值得做一個全新的職位。你知道BlockingQueue與BufferUtils同步的緩衝區的性能如何進行比較嗎? – tdimmig 2012-03-01 19:51:16
很抱歉的(非常)晚的答覆..那麼你真的應該以肯定知道運行一些測試。我的觀點是BlockingQueue變種寫得很好,效率很高。如果我沒有弄錯,它們是在Java 5中添加的併發包的一部分。但最後,你應該做一些測試並做一些測量,看看你用的方式是否適合你。您可能想查看可用的類並從Array返回或LinkedList支持的隊列中進行選擇。有關詳細信息,請參閱上述文檔。歡呼聲,提比尤 – 2012-03-17 19:45:42