實現執行緒池

2021-08-05 19:23:59 字數 1615 閱讀 1349

1.執行緒池優點:

1).減少建立和銷毀執行緒的次數

2).可以根據系統的能力,調整執行緒池中線程的數目

3).減少切換執行緒的開銷

2.實現自定義執行緒池

思路:

public

class

threadpool

extends

threadgroup

}//加入任務

public

synchronized

void

execute(runnable task)

if(task !=null)

}//獲取執行緒任務

public

synchronized runnable gettask()throws exception

wait();

}return workqueue.removefirst();

}//關閉執行緒池

public

synchronized

void

close()

}//等待所有執行緒結束

public

void

join()

thread threads = new thread[activecount()];

int count = enumerate(threads);

for(int i=0; itry catch (interruptedexception e) }}

//工作執行緒類

private

class

workthread

extends

thread

public

void

run() catch (exception e)

if(task == null)

task.run();}}

}}

過程:在指定個數的執行緒中執行加入的任務,當隊列為空但執行緒池未關閉時,在此等待,等待其他執行緒在有任務時喚醒或者執行緒中斷關閉

測試類:

public

class threadpooltest

int numtasks = integer.parseint(args[0]);

int poolsize = integer.parseint(args[1]);

//建立執行緒池

threadpool threadpool = new threadpool(poolsize);

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

threadpool.join();

}//執行的任務

private

static runnable createtask(final int taskid) catch (interruptedexception e)

system.out.println("task" + taskid + "end");}};

}}

c 執行緒池實現(四)執行緒池實現

前面已經說到了同步佇列的實現,下面來看執行緒池的實現。ifndef include threadpool define include threadpool include include include include include syncqueue.hpp namespace mythrea...

記憶體池 程序池 執行緒池介紹及執行緒池C 實現

平常我們使用new malloc在堆區申請一塊記憶體,但由於每次申請的記憶體大小不一樣就會產生很多記憶體碎片,造成不好管理與浪費的情況。記憶體池則是在真正使用記憶體之前,先申請分配一定數量的 大小相等 一般情況下 的記憶體塊留作備用。當有新的記憶體需求時,就從記憶體池中分出一部分記憶體塊,若記憶體塊...

c 實現執行緒池

執行緒池 簡單地說,執行緒池 就是預先建立好一批執行緒,方便 快速地處理收到的業務。比起傳統的到來乙個任務,即時建立乙個執行緒來處理,節省了執行緒的建立和 的開銷,響應更快,效率更高。在linux中,使用的是posix執行緒庫,首先介紹幾個常用的函式 1 執行緒的建立和取消函式 pthread cr...