自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

高并發(fā)場(chǎng)景下到底應(yīng)該創(chuàng)建多少線程?

開(kāi)發(fā) 架構(gòu)
對(duì)于CPU密集型計(jì)算, 多線程本質(zhì)上是提升多核CPU的利用率, 所以對(duì)于一個(gè)4核的CPU, 每個(gè)核一個(gè)線程, 理論上創(chuàng)建4個(gè)線程就可以了, 再多創(chuàng)建線程也只是增加線程切換的成本。

大家好,我是冰河~~

創(chuàng)建多少線程合適, 要看多線程具體的應(yīng)用場(chǎng)景。一般來(lái)說(shuō),我們可以將程序分為:CPU密集型程序和I/O密集型程序, 而針對(duì)于CPU密集型程序和I/O密集型程序,其計(jì)算最佳線程數(shù)的方法是不同的 。

CPU密集型程序

對(duì)于CPU密集型計(jì)算, 多線程本質(zhì)上是提升多核CPU的利用率, 所以對(duì)于一個(gè)4核的CPU, 每個(gè)核一個(gè)線程, 理論上創(chuàng)建4個(gè)線程就可以了, 再多創(chuàng)建線程也只是增加線程切換的成本。

所以, 對(duì)于CPU密集型的計(jì)算場(chǎng)景, 理論上“線程的量=CPU核數(shù)”就是最合適的。但是在實(shí)際工作中, 一般會(huì)將線程數(shù)量設(shè)置為“CPU核數(shù)+1”, 這樣的話, 當(dāng)線程因?yàn)榕紶柕膬?nèi)存頁(yè)失效或其他原因?qū)е伦枞麜r(shí), 這個(gè)額外的線程可以頂上, 從而保證CPU的利用率 。

所以,在CPU密集型的程序中,一般可以將線程數(shù)設(shè)置為CPU核數(shù)+1。

I/O密集型程序

對(duì)于I/O密集型的程序,最佳的線程數(shù)是與程序中CPU計(jì)算和I/O操作的耗時(shí)比相關(guān)??傮w來(lái)說(shuō),可以將其總結(jié)為如下的公式。

單核CPU

最佳線程數(shù) = 1 +(I/O耗時(shí) / CPU耗時(shí))  

我們令R=I/O耗時(shí) / CPU耗時(shí), 可以這樣理解:當(dāng)線程A執(zhí)行IO操作時(shí), 另外R個(gè)線程正好執(zhí)行完各自的CPU計(jì)算。這樣CPU的利用率就達(dá)到了100%。

多核CPU

多核CPU的最佳線程數(shù)在單核CPU最佳線程數(shù)的基礎(chǔ)上,乘以CPU核數(shù)即可,如下所示。

最佳線程數(shù)=CPU核數(shù) * [ 1 +(I/O耗時(shí) / CPU耗時(shí)) ]  

總結(jié)

上述公式計(jì)算的結(jié)果為最佳理論值,實(shí)際工作中還是要通過(guò)實(shí)際壓測(cè)數(shù)據(jù)來(lái)找到最佳線程數(shù),將硬件的性能發(fā)揮到極致。

責(zé)任編輯:武曉燕 來(lái)源: 冰河技術(shù)
相關(guān)推薦

2022-01-28 00:00:42

高并發(fā)線程順序

2021-01-13 05:23:27

緩存數(shù)據(jù)庫(kù)高并發(fā)

2020-06-16 11:00:40

線程Java代碼

2022-03-21 12:45:28

Java線程代碼

2025-02-28 00:03:22

高并發(fā)TPS系統(tǒng)

2025-02-26 03:00:00

2018-06-21 15:25:40

WOT同程王曉波

2024-02-26 08:28:24

Java線程CPU

2019-04-10 14:10:02

高并發(fā)分布式系統(tǒng)架構(gòu)

2021-08-26 06:58:15

Innodb RR隔離級(jí)別

2019-12-13 08:52:48

高并發(fā)系統(tǒng)限流

2017-02-13 08:41:41

科技新聞早報(bào)

2018-07-27 10:56:10

2021-03-04 09:11:57

日志開(kāi)發(fā)打印

2020-10-13 07:44:45

理解分布式

2021-07-03 17:44:34

并發(fā)高并發(fā)原子性

2025-01-03 09:56:09

2016-09-01 09:01:00

MySQLRedisJMQ

2021-01-13 05:27:02

服務(wù)器性能高并發(fā)

2023-07-18 09:24:04

MySQL線程
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)