在我的64位電腦上,32位程序的最大虛擬內(nèi)存是4G,所以線程數(shù)最多是4096(4G/1M),32位線程的默認(rèn)堆棧大小是1M,一個(gè)64位程序的虛擬內(nèi)存可以達(dá)到8T,目前可以支持一個(gè)巨大的線程數(shù),1和cpu線程數(shù)的作用是cpu線程越多,程序運(yùn)行越快,或者說可以同時(shí)運(yùn)行的程序越多。
檢查cpu核心數(shù)和線程數(shù)步驟如下:第一步:開始菜單->運(yùn)行->cmd->輸入wmic->輸入cpuget*第二步:拖動(dòng)底部滑動(dòng)條到下圖所示位置。步驟3: NumberOfCores是內(nèi)核的數(shù)量,NumberOfLogicalProcessors是-。
1和cpu 線程數(shù)的作用是cpu線程越多,程序運(yùn)行越快,或者說可以同時(shí)運(yùn)行的程序越多。2,3,同時(shí)多線程,簡(jiǎn)稱SMT。SMT可以通過復(fù)制處理器的結(jié)構(gòu)狀態(tài),使同一處理器上的多個(gè)線程同步執(zhí)行,共享處理器的執(zhí)行資源,為高速計(jì)算核準(zhǔn)備更多的待處理數(shù)據(jù),減少計(jì)算核的空閑時(shí)間。SMT最吸引人的地方在于,只需小規(guī)模改變處理器內(nèi)核的設(shè)計(jì),幾乎不增加額外成本,就能顯著提升性能。多線程技術(shù)可以為高速計(jì)算核心準(zhǔn)備更多的待處理數(shù)據(jù),減少計(jì)算核心的空閑時(shí)間。這對(duì)于桌面低端系統(tǒng)來說無疑是很有吸引力的。從3.06GHzPentium4開始,所有英特爾處理器都將支持SMT技術(shù)。
出現(xiàn)這個(gè)問題是因?yàn)樵赪indows S32位系統(tǒng)中,一個(gè)進(jìn)程可以使用的最大虛擬內(nèi)存是2G,一個(gè)線程的默認(rèn)線程StackSize是1024K(1M),所以當(dāng)線程數(shù)的量接近2000時(shí),2000*1024K=2G(近似值),內(nèi)存資源就相當(dāng)于耗盡了。32位線程的默認(rèn)堆棧大小是1M。在我的64位電腦上,32位程序的最大虛擬內(nèi)存是4G,所以線程數(shù)最多是4096 (4G/1M)。一個(gè)64位程序的虛擬內(nèi)存可以達(dá)到8T,目前可以支持一個(gè)巨大的線程數(shù)。但是它受到實(shí)際物理內(nèi)存大小的限制。如果忽略內(nèi)存限制,下表最高可達(dá)線程數(shù):附件:Win32在低區(qū)為進(jìn)程保留2GB,在高區(qū)為系統(tǒng)保留2GB。Linux為內(nèi)核保留上面的1GB,為進(jìn)程保留下面的3GB。
{3。