C 多執行緒 控制線程數提高迴圈輸出效率

2022-07-04 18:24:11 字數 1286 閱讀 6375

c#多執行緒及控制線程數量,對for迴圈輸出效率。

雖然輸出不規律,但是效率明顯提高。

思路:如果要刪除1000條資料,只使用for迴圈,則乙個接著乙個輸出。所以,把1000條資料分成seed段,每段10條資料。

int seed = convert.toint32(createcount.value) % 10 == 0 ? convert.toint32(createcount.value) / 10 : convert.toint32(createcount.value) / 10 + 1;
注:createcount.value的值是具體輸出資料的數量

這裡把資料分配給seed個執行緒去處理,每個執行緒只輸出10個資料。

int threadcounttmp = 0;//

任務執行緒分派數

private

void btncreate_click(object

sender, eventargs e)

//推拉窗式控制多執行緒 執行緒數10}}

//分段後的資料發布給其它執行緒

public

void tempout(object

o) //

推拉窗式控制多執行緒 執行緒數10

} threadcounttmp--;

}

分段後,再將分段後的資料分配給其它執行緒來處理,這樣就能多執行緒同時工作了,由於要對控制項操作,所以使用多執行緒的話要依靠委託來實現多執行緒對控制項的控制。所以最後一步的輸出,如下:

delegate

void texttmp(object o);//

宣告委託

int threadcount = 0;//

任務執行緒

//委託函式

public

void resultout(object

o)

else

threadcount--;

}

因為我的資料要保證位數,所以要對0做簡單處理。例如 我要輸出

從上面的**可以看出,我是使用for來遞增的。所以是整型,前面的0隨著數值的大小不斷改變個數。

//

處理數字前面有多少個0

private

string getzero(int

leng)

return

result;

}

執行緒控制(執行緒同步 執行緒安全)

一 執行緒同步 當多個控制線程共享相同的記憶體時,需要確保每個執行緒看到一致的資料。如果當某個執行緒可以去修改變數,而其他執行緒也可以去讀取或者修改這個變數的時候,就需要對這些執行緒進行同步控制,以確保它們在訪問變數的儲存內容時不會訪問到無效的數值。同步 多程序或者多執行緒訪問臨界資源時,必須進行同...

多執行緒控制線程的等待和喚醒

最近做註冊的時候,發現同步傳送註冊郵件多了乙個耗時,就想到非同步處理郵件傳送,直接返回成功給使用者。設計了乙個執行緒,用來傳送郵件,需要傳送的時候再來喚醒就好了,但是對於沒有系統了解過多執行緒的我來說,想的太簡單了。public class mailsendthread extends thread...

Linux 執行緒控制 執行緒建立

作業系統並沒有提供執行緒控制的相關介面,大佬分裝了一套執行緒控制介面。執行緒裡我們用庫函式,所以說這套介面建立的執行緒是使用者態執行緒,並且這個使用者態執行緒在作業系統中對應了乙個輕量級程序。功能 建立 個新的執行緒 原型 int pthread create pthread t thread,co...