一、基本介紹
執行緒池:
已經包含了一些執行緒, 以便直接使用.
優點:避免了頻繁建立 / 銷毀執行緒的開銷
執行緒池本身就是生產者 - 消費者模型。
生產者 - 消費者模型介紹
核心操作:
execute: 把乙個任務加到執行緒池中
shutdown: 銷毀執行緒池中的所有執行緒
執行緒池的組成:(需要管理兩個部分: 將要執行的任務, 正在執行任務的執行緒)
1. 乙個類, 描述具體執行緒要做的工程(借助 runnable 表示)
2. 需要乙個資料結構來組織若干個任務(blockingqueue)
3. 先有乙個類, 表示工作執行緒
4. 還需要乙個資料結構, 組織若干個執行緒(list)
二、執行緒池的實現
static
class
worker
extends
thread
@override
public
void
run()}
catch
(interruptedexception e)}}
static
class
thredpool
queue.
put(command)
;// 加入阻塞佇列中
}public
void
shutdown()
throws interruptedexception
// 還需要等待每個執行緒執行結束
for(worker worker : workers)}}
static
class
command
implements
runnable
@override
public
void
run()}
public
static
void
main
(string[
] args)
throws interruptedexception
thread.
sleep
(2000);
// 休眠 2 秒
pool.
shutdown()
; system.out.
println
("執行緒池已被銷毀");
}
多執行緒與高併發(九) 執行緒池
執行緒池是執行緒的集合,它會初始化一些執行緒,當有任務提交給執行緒池時,執行緒池會分配空閒的執行緒去執行任務,執行結束之後,執行緒會再次成為空閒狀態,等待執行下乙個任務。threadpoolexecutor 繼承了 abstractexecutorservice,而 abstractexecutor...
執行緒 執行緒池
執行緒池是一種多執行緒處理形式,處理過程中將任務新增到佇列,然後在建立執行緒後執行,主要實現 建立執行緒和管理執行緒,並且給執行緒分配任務。執行緒池中的執行緒是併發執行的。乙個比較簡單的執行緒池至少應包含執行緒池管理器 工作執行緒 任務列隊 任務介面等部分。其中執行緒池管理器的作用是建立 銷毀並管理...
執行緒 執行緒池
乙個簡單執行緒的建立和銷毀如下 與程序程序相比,執行緒是一種輕量級的工具,但是輕量並不代表沒有,它的建立和關閉依然需要花費時間,如果建立和銷毀的時間還大於執行緒本身完成的工作,那就會得不償失,甚至會造成out of memory。即使沒有,大量的執行緒 也會給gc帶來巨大的壓力。為了解決這樣的問題,...