-
;您只能放棄使用CPU的權利。
-
併發讀取通常不是問題。
問題在於並行讀取和寫入。 會出現髒讀、髒寫等問題。
解決方案是乙個比較大的問題,建議您閱讀《Windows 併發程式設計指南》一書。
-
如果不想更改設計,請使用 manualResetEvent 物件,每次執行緒建立子執行緒時,都建立此物件,並確保所有執行緒都執行完畢,然後放開阻塞。 (可以使用計數方法開始記錄需要建立的執行緒數,然後在每個子執行緒完成變數值 1 時記錄乙個變數(原子型別),如果變數值 == 執行緒數,則此物件 set())。
但是這種效率真的很難說,多執行緒的目的是為了更快,它可以同時處理事情,如果你這樣設計,你就走不快。
設定全域性變數,這是不可取的,在多執行緒中,如果這樣的執行緒只有一層,可以控制,如果層數較多,則加減,根本無法控制。 最後,我不知道如何分析問題,在多執行緒分析問題時,有些問題可以重現,有些問題可以重現十次。
我也在做這方面的研究,所以當我有時間的時候,我可以和你談談,看看你的設計。
-
使用執行緒池等待
或者使用執行緒聯接來滿足您的要求。
-
讓乙個全域性集合變數。 每次開啟子執行緒時,都會將一段資料新增到集合中。
當每個子執行緒完成時刪除一段資料,檢查集合中的資料。 如果沒有資料,可以通知主線程,所有執行緒都完成。
-
向執行緒新增乙個 bool 變數,線上程完成時分配乙個 bool 值,並在更改 bool 型別時確定它是否完成。
-
由於建立和切換執行緒的開銷,多執行緒不會提高程式的執行速度,反而會降低速度,但對於IO操作頻繁的程式來說,多執行緒可以有效地併發。
對於具有不同任務的程式,請考慮每個任務使用乙個執行緒。 這樣的程式被設計成比單執行緒程式更清晰,單執行緒程式可以做所有事情,例如生產和消費者問題。
在實際開發中,需要考慮在特定場景下是否使用多執行緒技術進行效能優化。
也就是說,執行緒和效率不成正比。
簡單的方法是設定乙個關鍵變數,執行緒在執行時檢測這個變數的值,如果變數的值為false,則表示執行緒暫停,讓執行緒繼續休眠,可以根據自己的需要設定休眠間隔值。 比較複雜的是執行緒間通訊來控制,我想大家已經看過很多了,我就不多說了。網上有很多例子。 >>>More
其中,可以使用 threadid 來確定執行緒操作的資料 ID,可以使用範圍內的資料。 例如,threadid=1 操作資料庫 ID 1-1000 中的資料,然後在此範圍內執行正常的資料庫操作。 >>>More
當多個執行緒訪問獨佔共享資源時,可以使用 Critical Zone 物件。 任何時候只能有乙個執行緒有乙個臨界區域物件,具有臨界區域的執行緒可以訪問受保護的資源或段,其他想要進入臨界區域的執行緒將被暫停並等待,直到具有臨界區域的執行緒放棄臨界區域,從而保證沒有多個執行緒同時訪問共享資源。 >>>More
1.這是由系統物件**機制決定的,可以呼叫系統gc命令, 2.Set h=null 可以作為發布,沒有記憶體洩漏,但至於發布,真正的發布是由系統決定的。