執行緒(九) 執行緒池

2021-10-08 17:55:00 字數 1255 閱讀 1464

一、基本介紹

執行緒池:

已經包含了一些執行緒, 以便直接使用.

優點:避免了頻繁建立 / 銷毀執行緒的開銷

執行緒池本身就是生產者 - 消費者模型。

生產者 - 消費者模型介紹

核心操作:

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帶來巨大的壓力。為了解決這樣的問題,...