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