線程安全的本質(zhì) 多線程和單線程有什么本質(zhì)區(qū)別?
多線程和單線程有什么本質(zhì)區(qū)別?多線程:多線程意味著一個(gè)程序包含多個(gè)執(zhí)行流,也就是說(shuō),一個(gè)程序可以運(yùn)行多個(gè)不同的線程來(lái)同時(shí)執(zhí)行不同的任務(wù),也就是說(shuō),一個(gè)程序可以創(chuàng)建多個(gè)并行執(zhí)行流。單線程:線程是程序中的
多線程和單線程有什么本質(zhì)區(qū)別?
多線程:多線程意味著一個(gè)程序包含多個(gè)執(zhí)行流,也就是說(shuō),一個(gè)程序可以運(yùn)行多個(gè)不同的線程來(lái)同時(shí)執(zhí)行不同的任務(wù),也就是說(shuō),一個(gè)程序可以創(chuàng)建多個(gè)并行執(zhí)行流。單線程:線程是程序中的執(zhí)行流。每個(gè)線程都有自己的特殊寄存器(堆棧指針、程序計(jì)數(shù)器等),但代碼區(qū)域是共享的,即不同的線程可以執(zhí)行相同的函數(shù)。多線程也是一個(gè)程序,所以線程需要占用內(nèi)存,線程越多,占用的內(nèi)存就越多;多線程需要協(xié)調(diào)和管理,所以需要CPU時(shí)間來(lái)跟蹤線程;線程之間共享資源的訪問(wèn)會(huì)相互影響,必須解決共享資源爭(zhēng)用的問(wèn)題;也是多線程將導(dǎo)致過(guò)于復(fù)雜的控制。當(dāng)單個(gè)線程執(zhí)行一個(gè)程序時(shí),它所采用的程序路徑是按連續(xù)順序排列的。前者必須處理好,后者才能執(zhí)行。例如,就像ppsspp運(yùn)行一樣。例如,如果您需要處理一段圖像解碼,則單個(gè)線程必須先處理該段,然后才能處理下一段,因此速度會(huì)有點(diǎn)慢。多線程意味著在一個(gè)進(jìn)程中有幾個(gè)相對(duì)獨(dú)立的任務(wù),這些任務(wù)由相互競(jìng)爭(zhēng)的CPU執(zhí)行。在多處理機(jī)環(huán)境下,它在宏觀上是并發(fā)的,但實(shí)際上是分時(shí)執(zhí)行,只是執(zhí)行時(shí)間較短。例如,運(yùn)行ppsspp。為了處理一段圖像數(shù)據(jù),他可以使用一個(gè)線程來(lái)處理這段數(shù)據(jù),使用另一個(gè)線程來(lái)處理下一段數(shù)據(jù)。與單線程相比,提高了速度。
多線程和單線程有什么本質(zhì)區(qū)別?
多線程和單線程的本質(zhì)區(qū)別如下:
(1)多線程的出現(xiàn)并不是由于多核CPU的發(fā)明。即使現(xiàn)在有多CPU和多核硬件,也不是因?yàn)槎嗑€程CPU的運(yùn)行效率高于單線程。單從CPU的運(yùn)行效率來(lái)看,單任務(wù)進(jìn)程和單線程的效率最高,因?yàn)镃PU沒(méi)有任何進(jìn)程和線程切換開(kāi)銷(xiāo)。
](2)事實(shí)上,多線程的出現(xiàn)主要是為了解決IO設(shè)備讀寫(xiě)引起的單線程程序運(yùn)行阻塞問(wèn)題寫(xiě)入速度通常比CPU的處理速度慢。一個(gè)極端的例子是,如果需要用戶(hù)按鍵在磁盤(pán)上輸入一個(gè)數(shù)據(jù),當(dāng)用戶(hù)不輸入時(shí),單線程程序就會(huì)阻塞,而多線程程序可以在程序中播放音樂(lè)或繼續(xù)做一些除鍵盤(pán)輸入以外的工作。因此,當(dāng)程序等待資源阻塞時(shí),多線程可以提高其他資源的利用率(利用率不是效率)。
(3)因此,多線程與單線程最大的區(qū)別在于,多線程程序在等待IO操作的同時(shí),可以繼續(xù)完成此IO以外的其他工作,有利于提高完成整個(gè)任務(wù)的效果和速度。此外,多線程程序和單線程程序在程序設(shè)計(jì)上有不同的過(guò)程和結(jié)構(gòu)。多線程需要考慮靜態(tài)變量與其他資源的操作互鎖和程序執(zhí)行的同步。
CPU的線程多少對(duì)于打游戲影響大嗎?
它有影響。這取決于比賽。
有些游戲不足以進(jìn)行多核優(yōu)化,四核或六核就足夠了。有些杰作擅長(zhǎng)多核優(yōu)化,比如最近流行的《騎馬》、《斜杠2》。幾天前,我更新了多核優(yōu)化。我親自用微星飛機(jī)觀察到,在1000多人的戰(zhàn)場(chǎng)上,我的3700x被8核16線的40%以上使用。像這樣的3A大片還有很多。我猜八核十六線程可能是未來(lái)3A游戲多核優(yōu)化的趨勢(shì)。從最近半年的游戲測(cè)試來(lái)看,很多3A大片基本上都是在8核的時(shí)候達(dá)到了最佳幀數(shù),也就是說(shuō)8核以上的效果改善不大。四核到六核再到八核是一個(gè)漸進(jìn)效果的視頻,也可以在今天的頭條找到。。