我正在使用用於小型USB設備的用戶模式驅動程序。我的USB讀取循環應該是非常敏感的,它執行的操作應該非常小(不必是原子的)。就像內核模式驅動程序中的中斷服務程序一樣。在一個處理過程中,我需要創建一個線程並將一些參數傳遞給該讀取循環內的那個線程。在任何時候都有一個已經創建的線程或必要時創建線程
所以我需要知道該操作的確切上限。它不會超過200mS,或類似的東西。
下一個替代方案是在設備初始化時間(探測時間)執行線程初始化,然後休眠該線程,等待直到從讀線程發出信號爲止。但在這種情況下,線程總是在運行,這將是昂貴的。
什麼是最佳選擇?我的平臺是linux,他們說在linux中,線程的創建有非常短的操作。我需要決定什麼是最好的。保持線程始終處於活動狀態,或者在必要時創建線程。
您是否嘗試過測量/獲取這兩個選項? –
是的,由於線程塊是內存,所以始終創建線程並等待來自讀線程的信號正在浪費內存。否則從讀循環中創建線程可能會使讀線程延遲很長。 –