最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java多線程之如何確定線程數(shù)的方法

 更新時(shí)間:2022年03月21日 15:20:41   作者:xuzhujack  
創(chuàng)建線程和銷毀線程都是比較耗時(shí)的操作,如果每個(gè)任務(wù)都創(chuàng)建一個(gè)線程去處理,這樣線程會(huì)越來越多,那么應(yīng)該如何確定線程的數(shù)量,本文就詳細(xì)的介紹一下,感興趣的可以了解一下

關(guān)于多線程的線程數(shù)的確定,最近研讀過幾篇paper,在此做一下筆記,方便使用時(shí)翻看。

1、《Java 虛擬機(jī)并發(fā)編程》中介紹

就是說:線程數(shù) = CPU的核心數(shù) * (1 - 阻塞系數(shù))

另一篇:《Java Concurrency in Practice》即《java并發(fā)編程實(shí)踐》,給出的線程池大小的估算公式:

Nthreads=Ncpu*Ucpu*(1+w/c),其中 Ncpu=CPU核心數(shù),Ucpu=cpu使用率,0~1;W/C=等待時(shí)間與計(jì)算時(shí)間的比率

仔細(xì)推敲兩個(gè)公式,其實(shí)類似,在cpu使用率達(dá)100%時(shí),其實(shí)結(jié)論是一致的,這時(shí)候計(jì)算線程數(shù)的公式就成了,Nthreads=Ncpu*100%*(1+w/c) =Ncpu*(1+w/c)。

那么在實(shí)踐應(yīng)用中計(jì)算的公式就出來了,【以下推算,不考慮內(nèi)存消耗等方面】,如下:

1、針對(duì)IO密集型的,阻塞耗時(shí)w一般都是計(jì)算耗時(shí)幾倍c,假設(shè)阻塞耗時(shí)=計(jì)算耗時(shí)的情況下,Nthreads=Ncpu*(1+1)=2Ncpu,所以這種情況下,建議考慮2倍的CPU核心數(shù)做為線程數(shù)

2、對(duì)于計(jì)算密集型的,阻塞耗時(shí)趨于0,即w/c趨于0,公式Nthreads = Ncpu。

總結(jié):

上面只是做出的較為普適的線程數(shù)公式推算,實(shí)際應(yīng)用中可以會(huì)考慮多個(gè)方面,比如內(nèi)存容量消耗,任務(wù)耗時(shí)等,可以對(duì)這個(gè)公式進(jìn)行不斷的場(chǎng)景調(diào)整適配。

到此這篇關(guān)于Java多線程之如何確定線程數(shù)的方法的文章就介紹到這了,更多相關(guān)Java 確定線程數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • IDEA如何加載resources文件夾下文件相對(duì)路徑

    IDEA如何加載resources文件夾下文件相對(duì)路徑

    這篇文章主要介紹了IDEA如何加載resources文件夾下文件相對(duì)路徑問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Java中Math.round()的用法及說明

    Java中Math.round()的用法及說明

    這篇文章主要介紹了Java中Math.round()的用法及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • 深度思考JDK8中日期類型該如何使用詳解

    深度思考JDK8中日期類型該如何使用詳解

    這篇文章主要介紹了JDK8中日期類型該如何使用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Java數(shù)據(jù)結(jié)構(gòu)之圖的兩種搜索算法詳解

    Java數(shù)據(jù)結(jié)構(gòu)之圖的兩種搜索算法詳解

    在很多情況下,我們需要遍歷圖,得到圖的一些性質(zhì)。有關(guān)圖的搜索,最經(jīng)典的算法有深度優(yōu)先搜索和廣度優(yōu)先搜索,接下來我們分別講解這兩種搜索算法,需要的可以參考一下
    2022-11-11
  • Springboot實(shí)現(xiàn)接口傳輸加解密的步驟詳解

    Springboot實(shí)現(xiàn)接口傳輸加解密的步驟詳解

    這篇文章主要給大家詳細(xì)介紹了Springboot實(shí)現(xiàn)接口傳輸加解密的操作步驟,文中有詳細(xì)的圖文解釋和代碼示例供大家參考,對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-09-09
  • 簡(jiǎn)單易懂的Java Map數(shù)據(jù)添加指南

    簡(jiǎn)單易懂的Java Map數(shù)據(jù)添加指南

    Java提供了多種方法來往Map中添加數(shù)據(jù),開發(fā)者可以根據(jù)具體需求選擇合適的方法,需要的朋友可以參考下
    2023-11-11
  • Java?Springboot異步執(zhí)行事件監(jiān)聽和處理實(shí)例

    Java?Springboot異步執(zhí)行事件監(jiān)聽和處理實(shí)例

    Java?SpringBoot中,監(jiān)聽和處理事件是一種常見的模式,它允許不同的組件之間通過事件進(jìn)行通信,事件監(jiān)聽和處理通常通過Spring的事件發(fā)布-訂閱模型來實(shí)現(xiàn),一個(gè)簡(jiǎn)單的Spring?Boot應(yīng)用程序示例,其中將包括事件的定義、事件的發(fā)布以及事件的監(jiān)聽
    2024-07-07
  • 圖文詳解JAVA實(shí)現(xiàn)哈夫曼樹

    圖文詳解JAVA實(shí)現(xiàn)哈夫曼樹

    所謂哈夫曼樹就是要求最小加權(quán)路徑長(zhǎng)度,這是什么意思呢?簡(jiǎn)而言之,就是要所有的節(jié)點(diǎn)對(duì)應(yīng)的路徑長(zhǎng)度(高度-1)乘以該節(jié)點(diǎn)的權(quán)值,然后保證這些結(jié)果之和最小。下面這篇文章就給大家詳細(xì)介紹
    2016-08-08
  • 在IDEA中maven配置MyBatis的流程詳解

    在IDEA中maven配置MyBatis的流程詳解

    剛學(xué)完javaweb,對(duì)自己的Dao層代碼很不滿意的話,可得來學(xué)學(xué)MyBatis.學(xué)習(xí)MyBatis既可以改進(jìn)JDBC的使用,實(shí)現(xiàn)Dao層也會(huì)變得很簡(jiǎn)便,下面我將介紹IDEA中maven配置MyBatis簡(jiǎn)單流程,需要的朋友可以參考下
    2021-06-06
  • Redis如何實(shí)現(xiàn)分布式鎖詳解

    Redis如何實(shí)現(xiàn)分布式鎖詳解

    分布式鎖一般有三種實(shí)現(xiàn)方式:1. 數(shù)據(jù)庫(kù)樂觀鎖;2. 基于Redis的分布式鎖;3. 基于ZooKeeper的分布式鎖.本篇文章將介紹第二種方式,基于Redis實(shí)現(xiàn)分布式鎖,文中有非常詳細(xì)的介紹,需要的朋友可以參考下
    2021-06-06

最新評(píng)論

剑川县| 洛阳市| 雷波县| 双柏县| 湖南省| 招远市| 长岭县| 古交市| 昌平区| 光山县| 榆社县| 北碚区| 贵南县| 吉首市| 梁河县| 昌江| 金堂县| 繁峙县| 松滋市| 抚宁县| 兴宁市| 垣曲县| 如皋市| 大理市| 漾濞| 乐清市| 嘉祥县| 三明市| 无极县| 龙井市| 肇源县| 苍南县| 文成县| 穆棱市| 潞城市| 玉山县| 周口市| 闽清县| 额济纳旗| 顺昌县| 朔州市|