成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

IO密集型的線程池大小設(shè)置

zhaot / 1376人閱讀

摘要:密集密集型的話,是指系統(tǒng)大部分時(shí)間在跟交互,而這個(gè)時(shí)間線程不會(huì)占用來(lái)處理,即在這個(gè)時(shí)間范圍內(nèi),可以由其他線程來(lái)使用,因而可以多配置一些線程。密集型線程大小使用這樣語(yǔ)義化設(shè)置,表達(dá)能力強(qiáng)一些。

類型判斷(CPU密集orIO密集or混合型)

看應(yīng)用是CPU密集型的還是IO密集型的,還是混合型的。

CPU密集
CPU密集型的話,一般配置CPU處理器個(gè)數(shù)+/-1個(gè)線程,所謂CPU密集型就是指系統(tǒng)大部分時(shí)間是在做程序正常的計(jì)算任務(wù),例如數(shù)字運(yùn)算、賦值、分配內(nèi)存、內(nèi)存拷貝、循環(huán)、查找、排序等,這些處理都需要CPU來(lái)完成。

IO密集
IO密集型的話,是指系統(tǒng)大部分時(shí)間在跟I/O交互,而這個(gè)時(shí)間線程不會(huì)占用CPU來(lái)處理,即在這個(gè)時(shí)間范圍內(nèi),可以由其他線程來(lái)使用CPU,因而可以多配置一些線程。

混合型
混合型的話,是指兩者都占有一定的時(shí)間。

IO密集型線程大小
/**
 * Support class for thread pool size
 * 
 * @author Nadeem Mohammad
 *
 */
public final class ThreadPoolUtil {
    
    private ThreadPoolUtil() {
        
    }
    /**
     * Each tasks blocks 90% of the time, and works only 10% of its
     *    lifetime. That is, I/O intensive pool
     * @return io intesive Thread pool size
     */
    public static int ioIntesivePoolSize() {
        
        double blockingCoefficient = 0.9;
        return poolSize(blockingCoefficient);
    }

    /**
     * 
     * Number of threads = Number of Available Cores / (1 - Blocking
     * Coefficient) where the blocking coefficient is between 0 and 1.
     * 
     * A computation-intensive task has a blocking coefficient of 0, whereas an
     * IO-intensive task has a value close to 1,
     * so we don"t have to worry about the value reaching 1.
     *  @param blockingCoefficient the coefficient
     *  @return Thread pool size
     */
    public static int poolSize(double blockingCoefficient) {
        int numberOfCores = Runtime.getRuntime().availableProcessors();
        int poolSize = (int) (numberOfCores / (1 - blockingCoefficient));
        return poolSize;
    }
}
使用
ExecutorService executorService = Executors.newFixedThreadPool(ThreadPoolUtil.ioIntesivePoolSize());

這樣語(yǔ)義化設(shè)置,表達(dá)能力強(qiáng)一些。

doc

Java線程池配置原則

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/67423.html

相關(guān)文章

  • jave 線程

    摘要:在開(kāi)發(fā)過(guò)程中,合理地使用線程池能夠帶來(lái)個(gè)好處。性質(zhì)不同的任務(wù)可以交給不同規(guī)模的線程池執(zhí)行。當(dāng)然具體合理線程池值大小,需要結(jié)合系統(tǒng)實(shí)際情況,在大量的嘗試下比較才能得出,以上只是前人總結(jié)的規(guī)律。 線程池簡(jiǎn)述 Java中的線程池是運(yùn)用場(chǎng)景最多的并發(fā)框架,幾乎所有需要異步或并發(fā)執(zhí)行任務(wù)的程序都可以使用線程池。在開(kāi)發(fā)過(guò)程中,合理地使用線程池能夠帶來(lái)3個(gè)好處。 降低資源消耗。通過(guò)重復(fù)利用已創(chuàng)建的...

    kgbook 評(píng)論0 收藏0
  • 技術(shù)經(jīng)理:求求你,別再亂改數(shù)據(jù)庫(kù)連接大小了!

    摘要:你僅僅需要一個(gè)大小為數(shù)據(jù)庫(kù)連接池,然后讓剩下的業(yè)務(wù)線程都在隊(duì)列里等待就可以了。你應(yīng)該經(jīng)常會(huì)看到一些用戶量不是很大的應(yīng)用中,為應(yīng)付大約十來(lái)個(gè)的并發(fā),卻將數(shù)據(jù)庫(kù)連接池設(shè)置成,的情況。請(qǐng)不要過(guò)度配置您的數(shù)據(jù)庫(kù)連接池的大小。 文章翻譯整理自: https://github.com/brettwooldridge/HikariCP/wiki/About-Pool-Sizing歡迎關(guān)注個(gè)人微信公眾...

    darkbug 評(píng)論0 收藏0
  • 技術(shù)經(jīng)理:求求你,別再亂改數(shù)據(jù)庫(kù)連接大小了!

    摘要:你僅僅需要一個(gè)大小為數(shù)據(jù)庫(kù)連接池,然后讓剩下的業(yè)務(wù)線程都在隊(duì)列里等待就可以了。你應(yīng)該經(jīng)常會(huì)看到一些用戶量不是很大的應(yīng)用中,為應(yīng)付大約十來(lái)個(gè)的并發(fā),卻將數(shù)據(jù)庫(kù)連接池設(shè)置成,的情況。請(qǐng)不要過(guò)度配置您的數(shù)據(jù)庫(kù)連接池的大小。 文章翻譯整理自: https://github.com/brettwooldridge/HikariCP/wiki/About-Pool-Sizing歡迎關(guān)注個(gè)人微信公眾...

    蘇丹 評(píng)論0 收藏0
  • Java線程配置原則

    摘要:具體線程池大小觀測(cè),可以通過(guò)覆蓋的鉤子方法,進(jìn)行線程池的監(jiān)控,查看等待隊(duì)列大小等等,主要觀察等待隊(duì)列的大小以及拒絕的任務(wù)多少。 CPU密集orIO密集or混合型 看應(yīng)用是CPU密集型的還是IO密集型的,還是混合型的。 CPU密集CPU密集型的話,一般配置CPU處理器個(gè)數(shù)+/-1個(gè)線程,所謂CPU密集型就是指系統(tǒng)大部分時(shí)間是在做程序正常的計(jì)算任務(wù),例如數(shù)字運(yùn)算、賦值、分配內(nèi)存、內(nèi)存拷貝...

    SegmentFault 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

zhaot

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<