乙個可以重用的執行緒安全生產者消費者佇列類

2021-06-13 20:31:19 字數 412 閱讀 8273

生產者、消費者佇列的**和文件和例子,csdn或別的**上已經有很多了,我就不再多說了。不過一般的文件中給出的例子往往只是「例子」,要用於實際的專案開發中差的很遠,共享一下我以前寫的乙個執行緒安全的生產者消費者佇列類。具有如下特點:

1.可以設定佇列中的最大長度;

2.執行緒安全;

4.多執行緒從佇列中取出資料時,可設定等待佇列有資料的超時時間, 當有資料時等待執行緒會被喚醒。函式原型為:ftlthreadwaittype remove(element& element, dword dwtimeout),

5.支援安全的退出,即如果在等待加入資料或取出資料時,能直接通過stop喚醒。

6.支援動態改變佇列大小 -- 但這個功能我測試的不是很多,可能有bug,如發現有bug請告訴我。

7.和我其他ftl中的類一樣,支援模版。

乙個生產者和乙個消費者

我想開發乙個可以允許最多有3個物品的 生產者 消費者 例子 說明的是生產者,消費者都只有乙個 1。代表商店店員 public class clerk catch interruptedexception e this.product system.out.printf 現在共有商品 d n個 thi...

Qt執行緒同步之乙個生產者多個消費者

qmutex qmutex類提供的是執行緒之間的訪問順序化。qmutex的目的是保護一段 使得同一時間只有乙個執行緒可以訪問它。但在乙個執行緒中呼叫lock 其它執行緒將會在同一地點試圖呼叫lock 時會被阻塞,直到這個執行緒呼叫unlock 之後其它執行緒才會獲得這個鎖。qsemaphore 訊號...

生產者 和 消費者 乙個 小案例

package com.thread 生產者 author cp class prod implements runnable public void run 消費者 author cp class clinet implements runnable public void run 麵包 auth...