Java併發程式設計從入門到精通 之 第六章 執行緒池

2021-08-18 21:22:55 字數 965 閱讀 9555

什麼是執行緒池:

-1 作用:盡可能減少建立和銷毀物件次數,

executors.newsinglethreadexecutor的使用:

-1 說明:建立單執行緒執行緒池,異常結束會有新的替代,保證任務

按提交順序執行。

-2 基本方法:executor.execute(runnable); executor.shutdown();

executors.newcachedthreadpool的使用:

-1 說明:根據需要伸縮,可重用以前建立的執行緒,如果沒則建立新的,並自動移除60s未被使用的執行緒。

-2 基本方法:同上

executors.newfixedthreadpool的使用:

-1 說明:建立可重用固定執行緒池

執行緒池的好處:

-1 好處:

重複利用執行緒,降低

消耗。無需建立執行緒,提高

響應速度。

執行緒池統一分配調優,提高可

管理性。

防止伺服器

過載。-2 應用範圍:

對長時間任務,會話時間遠大於執行緒建立優勢不明顯。

接受大量突發請求,坑能出現outofmemory錯誤

執行緒池工作機制及原理:

-1 核心的兩個佇列:

執行緒等待池(blockingqueue)、任務處理池(工作中thread列表)

-2 核心引數:

核心池大小(執行緒數

穩定值,到達後就不會釋放,也不會無故新增)

最大處理執行緒池數(建立的最大數目,突然大量請求,會推到當前值為止)

核心池大小 <= 當前執行緒數 <= 最大處理執行緒池數

自定義執行緒池與executorservice:

-1 說明:實現執行緒工廠threadfactory介面

-2 使用例項:

public class ******threadfacory implements theadfactory }

Java併發程式設計從入門到精通 之 第一章 概念部分

並行處理 依靠多個cpu並行執行多個程式。程序切換有時也叫上下文切換。時間片設定太短會導致頻繁切換,降低cpu效率。什麼是程序?程序是作業系統進行資源分配的 最小單位。程序分為使用者程序和系統程序。執行緒是cpu排程的最小單位,必須依賴於程序而存在,基本不擁有系統資源,與其他執行緒共享程序所擁有的全...

JAVA從入門到精通(4)

一 條件語句之if 語法 if 條件 解釋 需要先判斷條件,條件滿足後才執行後續的 注 如果if條件成立時的執行語句只有一條,是可以省略大括號的 但是執行語句有多條,那就不可以省略了。二 條件語句之if.else 語法 if 條件的布林表示式 else 解釋 條件成立時,則執行if部分的 塊 條件不...

Go從入門到精通 示例 併發列印

使用無緩衝通道往裡面裝入資料時,裝入方將被阻塞,直到另外通道在另外乙個 goroutine 中被取出。同樣,如果通道中沒有放入任何資料,接收方試圖從通道中獲取資料時,同樣被阻塞。傳送和接收的操作是同步完成的。package main import fmt func printer c chan in...