單片機(jī)實(shí)時(shí)操作系統(tǒng)中進(jìn)程與鄉(xiāng)程
在32位的Windows系統(tǒng)中,術(shù)語(yǔ)多任務(wù)是指系統(tǒng)可以同時(shí)運(yùn)行多個(gè)進(jìn)程,而每個(gè)進(jìn)程也可以同時(shí)執(zhí)行多個(gè)線程。
----------------------------------------------------------------------------------------------------------------------
進(jìn)程能開(kāi)多少個(gè)?
進(jìn)程表不可以無(wú)限開(kāi)。每個(gè)進(jìn)程在系統(tǒng)內(nèi)核的進(jìn)程表中都有記錄,以便于系統(tǒng)的調(diào)度,在進(jìn)程表中應(yīng)該會(huì)給每個(gè)進(jìn)程一個(gè)固定長(zhǎng)度的編號(hào),比如說(shuō)8位或16位的二進(jìn)制號(hào)碼,編號(hào)的長(zhǎng)度決定了系統(tǒng)最多可以調(diào)度的進(jìn)程數(shù)。一般XP開(kāi)200個(gè)進(jìn)程沒(méi)問(wèn)題的,只要配置高一點(diǎn)。
1、那么一個(gè)進(jìn)程能開(kāi)多少線程?
默認(rèn)情況下,一個(gè)線程的棧要預(yù)留1M的內(nèi)存空間,而一個(gè)進(jìn)程中可用的內(nèi)存空間只有2G,所以理論上一個(gè)進(jìn)程中最多可以開(kāi)2048個(gè)線程,但是內(nèi)存當(dāng)然不可能完全拿來(lái)作線程的棧,所以實(shí)際數(shù)目要比這個(gè)值要小。
能開(kāi)多少進(jìn)程是根據(jù)內(nèi)存限制的。
2.如何突破2000個(gè)限制?
可以通過(guò)修改CreateThread參數(shù)來(lái)縮小線程棧StackSize,
----------------------------------------------------------------------------------------------------------------------
簡(jiǎn)單的說(shuō),你每啟動(dòng)一個(gè)程序,就啟動(dòng)了一個(gè)進(jìn)程。在Windows 3.x下,進(jìn)程是最小運(yùn)行單位。在Windows 95/NT下,每個(gè)進(jìn)程還可以啟動(dòng)幾個(gè)線程,比如每下載一個(gè)文件可以單獨(dú)開(kāi)一個(gè)線程。在Windows 95/NT下,線程是最小單位。WINDOWS的多任務(wù)特性使得線程之間獨(dú)立運(yùn)行,但是它們彼此共享虛擬空間,也就是共用變量,線程有可能會(huì)同時(shí)操作一片內(nèi)存。
所謂進(jìn)程,本身不能執(zhí)行,它只是一個(gè)資源的集合體,擁有地址空間,模塊,內(nèi)存,...
線程是真正的執(zhí)行單元,一個(gè)進(jìn)程如果沒(méi)有線程,那么就沒(méi)有存在的意義,因?yàn)椴豢赡軋?zhí)行
評(píng)論