首页
社区
课程
招聘
[求助]windows 2003 server 每进程最大线程数是多少?
2006-5-30 13:29 10234

[求助]windows 2003 server 每进程最大线程数是多少?

2006-5-30 13:29
10234
我写一个服务程序,当系统总线程到达2600里,服务程序就开始创建线程失败,系统资源肯定是足够的,我想问下,windows 2003 server每进程的最大线程数是多少,可不可以修改这个最大值,谢谢

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
点赞0
打赏
分享
最新回复 (5)
雪    币: 235
活跃值: (100)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
lemony 1 2006-5-30 15:05
2
0
我记得可以,在注册表里面修改~~~

不知道你创建这么多线程干嘛?

效率不慢死,CPU光给你切换线程的
雪    币: 212
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
langouster 2006-5-30 16:23
3
0
我上次在w2000下测试一个程序时也遇到了这个问题,就建了两个进程来工作!
雪    币: 186
活跃值: (42)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
sqf 2006-5-30 22:11
4
0
个人认为是这样的:每个进程是有4G的内存空间,其种只有一部分是给用户使用的,其余是内核使用的,具体多少跟操作系统有关。进程中的所有线程公用这一空间。每个线程又自己的堆栈,如果用VC写程序的话,线程的默认堆栈是1M,可以在编译程序时修改。因此可以推算一个进程的线程数也就两千多个,如果线程堆栈该太小的话,有可能满足不了需要。我感觉通过注册表修改线程数是不可能的,可通过多进程或集群解决。
雪    币: 21
活跃值: (269)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
littlepotato 2006-5-31 00:04
5
0
最初由 lemony 发布
我记得可以,在注册表里面修改~~~

不知道你创建这么多线程干嘛?

效率不慢死,CPU光给你切换线程的

每线程负责一个连接,在无数据接收情况下,都是suspend状态,
2600个线程,基本只用了46M内存,cpu2%加减1
所以不存在效率问题
雪    币: 21
活跃值: (269)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
littlepotato 2006-5-31 00:07
6
0
最初由 sqf 发布
个人认为是这样的:每个进程是有4G的内存空间,其种只有一部分是给用户使用的,其余是内核使用的,具体多少跟操作系统有关。进程中的所有线程公用这一空间。每个线程又自己的堆栈,如果用VC写程序的话,线程的默认堆栈是1M,可以在编译程序时修改。因此可以推算一个进程的线程数也就两千多个,如果线程堆栈该太小的话,有可能满足不了需要。我感觉通过注册表修改线程数是不可能的,可通过多进程或集群解决。

嗯,谢谢你的回答,我再查查资料验证下是不是这个问题,实在不行,只好费点劲,改用线程池了,这种一个连接创建一个线程的办法虽然土了点,但是胜在简单,呵呵
游客
登录 | 注册 方可回帖
返回