關於啟動乙個執行緒監控佇列的替代方案

2022-08-10 10:48:17 字數 410 閱讀 9903

專案背景:

操作物件:乙個定長的任務佇列

佇列狀態:任務佇列中的任務會在一定時間後完成,完成後需要移出佇列,然後重新計算佇列剩下的長度。

佇列的操作大致分為兩類:

一類是查詢佇列狀態,看佇列裡面還剩下的空間。

另一類是佇列插入操作,如果佇列已經滿了,就插入失敗。

乙個普通的思路是通過啟動乙個執行緒來監控佇列中是否有任務完成,如果有任務完成,就移出佇列,佇列長度加一。

另外乙個思路就是只在進行上面兩個操作的時候才檢查佇列,得出的結果就是一樣的。這種方式更容易實現。

感覺就像哲學裡面的非主流的世界觀,當你不在看這個世界的時候,這個世界會變成千奇百怪的樣子。當你回頭再次觀察這個世界的時候,這個世界又像乙個調皮的孩子把一切恢復的原模原樣。你以為世界一直按照乙個規則在執行,其實這是乙個假象。。。。

關於執行緒的乙個練習

下面是乙個我們學習執行緒的乙個小例子,大家看看。實現兩個執行緒,a為控制線程,b為工作執行緒,要求 1 從a中讀入乙個整數 2 根據a中讀入的數字計算其階乘,同時將結果輸入到d盤根目錄下的1.txt檔案中。該結果需要重複寫入1000次,但當使用者輸入的整數發生改變時,中斷寫入,並計算新數字的階乘,將...

略談如何建立乙個監控執行緒

一般實時監控功能放在乙個單獨開闢的執行緒比較合適,因為這樣可以大大減輕主線程的負擔。下面我談談如何建立乙個監控執行緒 以乙個工程說明 使用vs 2005 新建乙個對話方塊工程 test 在 bool c test dlg oninitdialog 函式裡建立執行緒,具體 如下 dword dwthr...

關於java執行緒的乙個問題

最近在寫乙個程式.其中就遇到了這樣乙個問題.我希望實現兩個或多個執行緒,而這些執行緒的順序是 thread thread 2,5,main a 這是執行緒2呼叫b時列印出的 thread thread 3,5,main a 這是執行緒3呼叫b時列印出的 上面的順序是我所希望的.但往往會是這樣的結果 ...