blockingqueue

    0熱度

    2回答

    我執行Java應用程序執行並行處理: 當我的應用程序啓動,屬於一個線程池 4個線程創建的。 然後,我開始接收添加到LinkedBlockingQueue的對象。每個對象都有一個ID,並根據該ID執行預定義的任務。我的「隊列使用者」是那些初始化的4個線程,他們開始將對象帶出隊列,並執行與每個對象相對應的任務。 可以定義其中Thread將處理每個對象?我想「爲每個線程安排任務」。 例如: 當第一對象被

    0熱度

    4回答

    我必須搜索一個對象:首先在BlockingQueue,如果它不存在,那麼我需要搜索一個ConcurrentHashMap並需要做一些操作。這需要是線程安全的。 下面的代碼是否正確? ConcurrentHashMap上的同步是否按預期工作? synchronized(blockingQueue){ if(!blockingQueue.contains(element)) {

    31熱度

    4回答

    什麼情況下最好使用ArrayBlockingQueue以及何時使用LinkedBlockingQueue更好? 如果LinkedBlockingQueue默認容量等於MAX Integer,那麼使用它作爲具有默認容量的BlockingQueue是否真的有用?

    0熱度

    1回答

    我正在做一個應用程序,這將意味着讀取大量的數據發送到我的套接字。 我現在的問題是,我是否應該依賴套接字setReceiveBufferSize,在那裏放置一個很大的值,希望它能收集我擁有的所有數據,直到我能夠處理它,或者使用BlockingQueue一切都在那裏,然後從另一個線程處理它來保持池和處理數據? 如果我讓隊列中最大數量的元素也是一個糟糕的設計? (所以我只是告訴它,「接受盡可能多的元素,

    1熱度

    1回答

    不是ArrayBlockingQueue單個操作是併發與任何其其它操作;他們總是採取相同的鎖定。即使對於size()方法,也需要鎖定。 public int size() { final ReentrantLock lock = this.lock; lock.lock(); try { return count; } finally

    0熱度

    2回答

    我想以線程安全的方式存儲對象列表,同時保持優先級。本來我開始使用BlockingQueue,因爲它是線程安全的,並且有能力維護自定義優先級。 我在想我是否需要同步我的方法?我的代碼如下所示: void addToQueue(SomeObject obj) { ... put it on my priority queue ... do some logging } 我已經

    0熱度

    2回答

    想知道爲什麼methoddrainTo僅存在於併發收集框架(特別是BlockingQueue)中,而不是常規收集框架中。這有什麼理由嗎? 在此先感謝。

    0熱度

    3回答

    如果我的問題很傻,我很抱歉。 我正在使用ArrayBlockingQueue。 private ArrayBlockingQueue<RequestParameters> processorQueue; private int sizeOfQueue = 3000; 在這裏,我的製作人是單獨的線程和消費者是分開的線程。 都在單生產者 - 消費者線程模型中運行。 現在,我正在運行我的Java應

    2熱度

    2回答

    我需要C++中的阻塞隊列,並具有超時功能offer()。該隊列旨在用於多個生產者,一個消費者。當我執行時,我沒有發現任何適合這種需求的現有隊列,所以我自己編寫了它。 我看到segfaults出隊列上的take()方法,但它們是間歇性的。我一直在研究代碼問題,但我沒有看到任何看起來有問題的東西。 我想知道如果: 有是不可靠的這種現有的庫,我應該 使用(升壓或頭只首選)。 任何人都看到我需要修復的代碼

    0熱度

    1回答

    我正在實現多線程,並希望能夠發送/接收消息從/從每個線程從主。所以,我想建立一個阻塞隊列與下面的代碼的每個線程: public static void main(String args[]) throws Exception { int deviceCount = 5; devices = new DeviceThread[deviceCount]; Blocking