<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          你知道線程池創(chuàng)建多少線程比較合理嗎?

          共 1214字,需瀏覽 3分鐘

           ·

          2020-12-02 11:22

          • 在設(shè)置線程池線程個(gè)數(shù)的時(shí)候,經(jīng)常會(huì)想到這個(gè)問題,是不是設(shè)置的線程數(shù)越多越好?理解這個(gè)問題之前我們要先清楚的知道我們?yōu)槭裁词褂枚嗑€程。

          為什么會(huì)使用多線程

          • 使用多線程的主要目的我們應(yīng)該都能回答的出來(lái)就是提高程序的性能,這個(gè)提高性能其實(shí)是指,降低延遲?指發(fā)送請(qǐng)求到接收到數(shù)據(jù)的時(shí)間,和?提搞吞吐量:?jiǎn)挝粫r(shí)間能可以處理更多的請(qǐng)求。
          • 將近延遲和提高吞吐量對(duì)應(yīng)的方法有兩種: 優(yōu)化算法 和 將機(jī)器的硬件性能發(fā)揮到極致
            • 1 優(yōu)化算法:降低時(shí)間和空間復(fù)雜度,使的程序執(zhí)行時(shí)間更短。
            • 2 將硬件的性能發(fā)揮到極致,具體的指提高I/O 和cpu的利用率 如何提高I/O 和cpu的利用率的舉例:如果單核系統(tǒng)中 只有一個(gè)程序執(zhí)行又有IO操作 和Cpu計(jì)算的代碼,當(dāng)程序執(zhí)行IO操作的時(shí)候,Cpu其實(shí)是空閑的,反之IO是空閑的,如果這個(gè)時(shí)候用兩個(gè)線程去跑這段代碼,一個(gè)線程執(zhí)行IO操作 ,一個(gè)線程執(zhí)行Cpu計(jì)算 ,這時(shí)IO和Cpu的利用率是不是發(fā)揮了極致?

          創(chuàng)建多少線程比較合適

          經(jīng)過上面的分析,我們知道創(chuàng)建多少線程能夠?qū)⒂布睦寐蔬_(dá)到最高才是最好的線程數(shù)。我們從線程的應(yīng)用場(chǎng)景來(lái)分析, 由于IO操作比Cpu計(jì)算耗時(shí)要久的多的,如果我們一段程序有IO操作 和 Cpu計(jì)算 我們可以稱之為:IO密集型計(jì)算。程序中沒有IO操作 只有Cpu的話 稱之為Cpu密集型程序。

          1. IO密集計(jì)算,如何將硬件利用率達(dá)到極致呢 我們將 R = IO耗時(shí) / Cpu耗時(shí) 我們從上面的例子來(lái)看 如果IO耗時(shí)/Cpu耗時(shí) = 10 (我們平常可以用工具apm來(lái)統(tǒng)計(jì)這個(gè)比例) 創(chuàng)建線程A 執(zhí)行io操作 我們希望IO操作的時(shí)候 Cpu不能閑著 所以就應(yīng)該創(chuàng)建10個(gè)線程去執(zhí)行Cpu計(jì)算 當(dāng)Io操作完畢后剛好Cpu也執(zhí)行完畢 ,他們的利用率都是百分之100 在執(zhí)行這段代碼的時(shí)候。這個(gè)例子我們要?jiǎng)?chuàng)建 1+ 10 = 11個(gè)線程執(zhí)行起來(lái)效率更高,于是我們就得到了公式: 1+ I/O耗時(shí)/Cpu耗時(shí),如果是多核Cpu 最佳線程數(shù) =CPU 核數(shù) * [ 1 +(I/O 耗時(shí) / Cpu 耗時(shí))
          2. Cpu密集型 這個(gè)就很簡(jiǎn)單了 Cpu的核數(shù) = 線程數(shù)就行,一般我們會(huì)設(shè)置 Cpu核數(shù)+1 防止由于其他因素導(dǎo)致線程阻塞等。

          結(jié)束語(yǔ)

          看到這里想必大家在回答創(chuàng)建多個(gè)線程比較合理這個(gè)問題有了新的思路,希望能夠幫助各位小伙伴。

          來(lái)源:https://www.cnblogs.com/karlMa/p/11356041.html

          版權(quán)申明:內(nèi)容來(lái)源網(wǎng)絡(luò),版權(quán)歸原創(chuàng)者所有。除非無(wú)法確認(rèn),我們都會(huì)標(biāo)明作者及出處,如有侵權(quán)煩請(qǐng)告知,我們會(huì)立即刪除并表示歉意。謝謝!





          感謝閱讀



          瀏覽 74
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美日韩三级片在线观看 | 亚洲成人中文字幕影院 | 国产精彩视频免费观看 | 人妻午夜影院 | 免费看无码视频 |