什麼是執行緒池:
-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...