執行緒池(1 2)使用

2021-08-30 00:17:44 字數 591 閱讀 7881

// 建立執行緒池

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.執行緒缺乏統一管理,可能無限制新建執行緒,相互之間競爭...