blockingqueue

    3熱度

    2回答

    我正在使用Java郵件API接收來自多個Gmail帳戶的郵件。不同的帳戶正在由不同的線程處理,我正在使用LinkedBlockingQueue來存儲電子郵件。但是,我不希望將相同的電子郵件反覆添加到Queue。 這是我到目前爲止的代碼: public synchronized void readMail(){ try { boolean alreadyAdded = fals

    3熱度

    1回答

    Java線程我必須做的功課,我有一些代碼完成,但有一些問題: 必須在Java中創建一個老闆,工人的應用程序。 我有這些類:Main WorkerThread BossThread Job 基本上就是我想要做的是,BossThread持有BlockingQueue和工人去那裏找找Jobs。 問題1: 此刻,我開始5 WorkingThreads和1 BossThread。 主營: Collectio

    2熱度

    3回答

    這是一個功課。 我想創建對等網絡線程模型: http://www.informit.com/articles/article.aspx?p=169479&seqNum=5 凡委託模型有老闆線程委託任務的工作線程,在對等網絡模型所有線程具有相同的工作狀態。儘管最初創建了執行所有任務所需的所有線程的單個線程,但該線程被視爲工作線程並且不執行委派。在這個模型中,沒有中心線程。 所以我的主線程創建預訂購5

    0熱度

    1回答

    我想獲得當前正在執行的任務,我正在添加在阻塞隊列中,它是如何完成的? 編輯:我使用這個優先級調度,並加入多任務不同的優先級: public class PriorityScheduler : TaskScheduler { public static PriorityScheduler Highest = new PriorityScheduler(ThreadPriority.Hig

    1熱度

    1回答

    如果我們需要實現一個隊列(由NSMutableArray完成),並且我們有Producer將數據添加到隊列的對象。可以有1個生產者或多個生產者。如果隊列已滿(例如,大小爲100),線程應該被「阻塞」(等待,直到隊列實際上小於100個項目)。 (從隊列中提取數據也是一樣:當數據爲空時,數據的獲取也被阻止)。 這個「阻塞」如何實現?現在,我使用的是互斥 @property (strong, atomi

    2熱度

    3回答

    我想知道是否有可能有一個多生產者/多個消費者隊列,我可以使用notify()而不是notifyAll()。例如,在下面的實施中(來源:here),您不能簡單地將notifyAll()切換爲notify()。這並不是完全明顯,爲什麼你不能切換,所以我會把它作爲一個傳情給任何想幫助我理解這個問題的人。 所以下面的代碼被打破: public class BlockingQueue { pri

    3熱度

    1回答

    對於我正在處理的日誌記錄功能,我需要有一個處理線程,它將等待作業,並在計數達到或超過特定數量時分批執行它們。由於這是一個生產者消費者問題的標準案例,我打算使用BlockingQueues。我有許多生產者使用add()方法將條目添加到隊列中,而只有一個使用take()的消費者線程在隊列中等待。 LinkedBlockingQueue似乎是一個不錯的選擇,因爲它沒有任何大小的限制,但我很困惑從文檔中讀

    0熱度

    1回答

    我一直在處理android應用程序中的相機進行「面部檢測」時遇到問題。 我所試圖做的事: -I具有時間可持續顯示了surfaceView(UI線程)的手機攝像頭飼料 - 要避免性能頭痛的活動,我把surfaceview使用OpenCv(這是運行在一個線程,說thread2)在上面繪製矩形檢測到的 - 我試圖將直接提要圖像的副本傳遞給Thread2,以便線程2可以執行檢測和繪製覆蓋面視圖 哪裏我現在

    2熱度

    3回答

    如果我們想實現資源池,比如數據庫連接池。你將使用哪個併發集合? BlockingQueue或Semaphore? 對於BlockingQueue,就像生產者 - 消費者設計模式一樣,生產者將把所有連接放在隊列上,並且使用者將從隊列中取得下一個可用連接。 對於Semaphore,您指定池大小的信號量,並獲取許可證,直到您達到池大小並等待其中任何人釋放許可證並將該資源放回池中。 哪一個更簡單?以及我們

    0熱度

    1回答

    我已經創建了自己的阻塞隊列,我遇到了一些麻煩搞清楚爲什麼我得到一個鏈接錯誤(注意這是一個Qt應用程序在Visual Studio 2010): #ifndef BLOCKING_QUEUE_H #define BLOCKING_QUEUE_H #include <QObject> #include <QSharedPointer> #include <QWaitCondition> #