日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

java的線程池有幾種 java線程的創(chuàng)建方式

隨著計算機(jī)行業(yè)的飛速發(fā)展 , 摩爾定律逐漸失效 , 多核CPU成為主流 。使用多線程并行計算逐漸成為開發(fā)人員提升服務(wù)器性能的基本武器 。J.U.C提供的線程池ThreadPoolExecutor類 , 幫助開發(fā)人員管理線程并方便地執(zhí)行并行任務(wù) 。了解并合理使用線程池 , 是一個開發(fā)人員必修的基本功 。
本文開篇了簡述線程池概念和用途 , 接著結(jié)合線程池的源碼 , 幫助大家領(lǐng)略線程池的設(shè)計思路 , 最后回歸實踐 , 通過案例講述使用線程池遇到的問題 , 并給出了一種動態(tài)化線程池解決方案 。

java的線程池有幾種 java線程的創(chuàng)建方式


一、寫在前面1.1 線程池是什么
線程池(Thread Pool)是一種基于池化思想管理線程的工具 , 經(jīng)常出現(xiàn)在多線程服務(wù)器中 , 如MySQL 。
線程過多會帶來額外的開銷 , 其中包括創(chuàng)建銷毀線程的開銷、調(diào)度線程的開銷等等 , 同時也降低了計算機(jī)的整體性能 。線程池維護(hù)多個線程 , 等待監(jiān)督管理者分配可并發(fā)執(zhí)行的任務(wù) 。這種做法 , 一方面避免了處理任務(wù)時創(chuàng)建銷毀線程開銷的代價 , 另一方面避免了線程數(shù)量膨脹導(dǎo)致的過分調(diào)度問題 , 保證了對內(nèi)核的充分利用 。
而本文描述線程池是JDK中提供的ThreadPoolExecutor類 。
當(dāng)然 , 使用線程池可以帶來一系列好處:
  • 降低資源消耗:通過池化技術(shù)重復(fù)利用已創(chuàng)建的線程 , 降低線程創(chuàng)建和銷毀造成的損耗 。
  • 提高響應(yīng)速度:任務(wù)到達(dá)時 , 無需等待線程創(chuàng)建即可立即執(zhí)行 。
  • 提高線程的可管理性:線程是稀缺資源 , 如果無限制創(chuàng)建 , 不僅會消耗系統(tǒng)資源 , 還會因為線程的不合理分布導(dǎo)致資源調(diào)度失衡 , 降低系統(tǒng)的穩(wěn)定性 。使用線程池可以進(jìn)行統(tǒng)一的分配、調(diào)優(yōu)和監(jiān)控 。
  • 提供更多更強(qiáng)大的功能:線程池具備可拓展性 , 允許開發(fā)人員向其中增加更多的功能 。比如延時定時線程池ScheduledThreadPoolExecutor , 就允許任務(wù)延期執(zhí)行或定期執(zhí)行 。
1.2 線程池解決的問題是什么
線程池解決的核心問題就是資源管理問題 。在并發(fā)環(huán)境下 , 系統(tǒng)不能夠確定在任意時刻中 , 有多少任務(wù)需要執(zhí)行 , 有多少資源需要投入 。這種不確定性將帶來以下若干問題:
  1. 頻繁申請/銷毀資源和調(diào)度資源 , 將帶來額外的消耗 , 可能會非常巨大 。
  2. 對資源無限申請缺少抑制手段 , 易引發(fā)系統(tǒng)資源耗盡的風(fēng)險 。
  3. 系統(tǒng)無法合理管理內(nèi)部的資源分布 , 會降低系統(tǒng)的穩(wěn)定性 。
為解決資源分配這個問題 , 線程池采用了“池化”(Pooling)思想 。池化 , 顧名思義 , 是為了最大化收益并最小化風(fēng)險 , 而將資源統(tǒng)一在一起管理的一種思想 。
Pooling is the grouping together of resources (assets, equipment, personnel, effort, etc.) for the purposes of maximizing advantage or minimizing risk to the users. The term is used in finance, computing and equipment management.——wikipedia
“池化”思想不僅僅能應(yīng)用在計算機(jī)領(lǐng)域 , 在金融、設(shè)備、人員管理、工作管理等領(lǐng)域也有相關(guān)的應(yīng)用 。
在計算機(jī)領(lǐng)域中的表現(xiàn)為:統(tǒng)一管理IT資源 , 包括服務(wù)器、存儲、和網(wǎng)絡(luò)資源等等 。通過共享資源 , 使用戶在低投入中獲益 。除去線程池 , 還有其他比較典型的幾種使用策略包括:

推薦閱讀