C 多程序開發,控制程序數量

2022-02-07 00:13:47 字數 1347 閱讀 1183

正在c#程式優化時,如果多執行緒效果不佳的情況下,也會使用多程序的方案,如下:

system.threading.tasks.task task=system.threading.tasks.task.factory.startnew(

(object mystate) =>

, collectpathitems.dequeue())

一般開闢的程序任務數也是要有限制的開,比如開闢程序數與計算機核心數一樣enviroment.processcount。那麼問題來了

假設用a:已經開闢了3個autocollectmrmultipleprocess.exe,使用者b去進行自己的採集任務時,允許開闢的程序數為:enviroment.processcount-3(如果該值已經小於等於0,就不再開闢,進入等待)。

實現**:

int maxprocesscount =enviroment.processcount;

list

taskitems = new list();

int cursor = 0

;

while (!(collectpathitems.count == 0 && taskitems.count == 0

))

}//如果collectpathitems.count == 0,則不會有新的任務被新增進來,因此不需要執行下邊其他**。

//而只需要等待上邊的任務完成跳出迴圈即可。

if (collectpathitems.count == 0

)

process processitems = process.getprocessesbyname("

autocollectmrmultipleprocess");

if (processitems.length >=maxprocesscount)

int dequeuecount = ((maxprocesscount - processitems.length) > collectpathitems.count) ? collectpathitems.count : (maxprocesscount -processitems.length);

for (int i = 0; i < dequeuecount; i++)

, collectpathitems.dequeue()));}

// sleep 30 seconds...

thread.sleep(3

0 * 1000

); cursor++;

}

多程序 多程序queue

多程序 import multiprocessing import threading import time defthread run print threading.get ident defrun name time.sleep 2 print hello name t threading....

unix linux多程序程式設計2 程序控制

主要內容 程序建立 執行程式 程序終止 程序屬性 1 程序識別符號 1.1 每個程序都有乙份非負整數表示的唯一程序id 程序id可以重新,乙個程序結束之後可以,這個id可以被其他程序所使用,當unix普遍都採用了延遲重用演算法。使得某乙個程序結束之後其id不會馬上被新的程序所使用,以防止將新程序誤認...

unix linux多程序程式設計3 程序控制

1 程序組 1.1與同意作業關聯的乙個或者多個程序的集合稱為程序組,可以接收來自同一終端的各種訊號。可以用getpgrp 來或者程序的程序組id。1.2組長程序 每個程序組都有乙個組長程序,其標誌是程序id等於程序組id,組長程序可以建立乙個程序組,建立該組中的程序,然後終止。但組長程序終止,並不意...