線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:3836
推到 Plurk!
推到 Facebook!

Windows 系統允許執行緒數量的上限?

答題得分者是:Chris.Net
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-05-10 18:34:33 IP:220.139.xxx.xxx 未訂閱
在實測 hao_chih 所發表的    ■【BCB】【發表】示範TThread+TList 模擬處理Message Queue,以防止重入 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=49757    時發現,當我啟用 Slow 模式,Timer 全開,讓執行緒的數量累加,同時打開工作管理員確認執行緒的數量(P.S. 我有按 Ctrl-Alt-T 在 BCB IDE 中查看,可是 IDE 好像只有列出操作中的執行緒...)。 在我的電腦(P4,512MB,XP HomeEd.)中當測試程式的 WaitingCount 一直累加,在 1995 以內時,工作管理員所記錄的執行緒數量值正好是 WaitingCount+1(主執行緒),可是當 WaitingCount 繼續累加到更大的數值如 2000,3000...,工作管理員所記錄的數值還是一樣 1996 個執行緒。 接著不再產生事件,讓它慢慢作完。結果,當工作管理員倒數到 40 左右時,測試程式也不再執行了。 我想應該是執行緒數量已達系統上限,讓程式運作已經異常了。 而在另一台電腦(也是P4,512MB,XP HomeEd.),工作管理員允許的執行緒上限是 2015 個。 當測試程式在這個上限值之前工作正常,一但超過,則會發生不可預期的結果。 而我的問題就是,Windows 系統允許執行緒數量的上限是多少?    沒空更新的網頁... http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com
Chris.Net
一般會員


發表:0
回覆:9
積分:6
註冊:2004-03-30

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-05-13 00:33:47 IP:61.58.xxx.xxx 未訂閱
createthread函數說明 在Remarks的第一段說明 每一個process能建立的thread上限是virtual memory的大小。 預設值是每一個thread佔1MB的stack空間,所以預設最多可以開2028個thread。調整預設的stack大小可以改變建立thread數量的上限。
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-05-13 13:13:01 IP:220.139.xxx.xxx 未訂閱
感謝 Chris.Net 的回應。 ■CreateThread http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/createthread.asp ■Thread Stack Size http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/thread_stack_size.asp    我查了 VCL 原始碼,TThread 使用預設值,也就是 1MB,如果要每個 TThread 自定 Stack Size 那就需要改寫 TThread...    沒空更新的網頁... http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com
系統時間:2024-05-19 22:46:01
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!