// 建立執行緒池
fthreadpool := tthreadspool.create(self); // 建立執行緒池
fthreadpool.threadsmin := 5; // 初始工作執行緒數
fthreadpool.threadsmax := 50; // 最大允許工作執行緒數
fthreadpool.onprocessrequest := dealwithcommrecvdata; // 執行緒工作函式(dealwithcommrecvdata在工作者執行緒的execute方法中被呼叫)
// 使用執行緒池
varaworkitem: trecvcommdataworkitem; // 繼承自tworkitem
begin
aworkitem := trecvcommdataworkitem.create;
move(pdata[0], aworkitem.frecvdata[0], pdatalen);
aworkitem.frecvdatalen := pdatalen;
fthreadpool.addrequest(aworkitem); // 向執行緒池分配乙個任務
end;
執行緒池使用
1.定義乙個執行緒池,用來執行實現callable介面的任務類.當阻塞佇列新添乙個任務類時,將while迴圈新增設定乙個變數startexcute,當阻塞佇列新添第乙個任務時,將startexcute設定為true,並呼叫excutetaskcall方法,使用執行緒池執行阻塞佇列的任務。當阻塞隊列為...
執行緒池使用
一 執行緒池的構造器 public threadpoolexecutor int corepoolsize,int maximumpoolsize,long keepalivetime,timeunit unit,blockingqueueworkqueue,threadfactory thread...
使用執行緒和執行緒池
1 new thread的弊端 執行乙個非同步任務你還只是如下new thread嗎?new thread new runnable start 那你就out太多了,new thread的弊端如下 a.每次new thread新建物件效能差。b.執行緒缺乏統一管理,可能無限制新建執行緒,相互之間競爭...