能力值:
( LV4,RANK:50 )
|
-
-
2 楼
我记得可以,在注册表里面修改~~~
不知道你创建这么多线程干嘛?
效率不慢死,CPU光给你切换线程的
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
我上次在w2000下测试一个程序时也遇到了这个问题,就建了两个进程来工作!
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
个人认为是这样的:每个进程是有4G的内存空间,其种只有一部分是给用户使用的,其余是内核使用的,具体多少跟操作系统有关。进程中的所有线程公用这一空间。每个线程又自己的堆栈,如果用VC写程序的话,线程的默认堆栈是1M,可以在编译程序时修改。因此可以推算一个进程的线程数也就两千多个,如果线程堆栈该太小的话,有可能满足不了需要。我感觉通过注册表修改线程数是不可能的,可通过多进程或集群解决。
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
最初由 lemony 发布 我记得可以,在注册表里面修改~~~
不知道你创建这么多线程干嘛?
效率不慢死,CPU光给你切换线程的
每线程负责一个连接,在无数据接收情况下,都是suspend状态,
2600个线程,基本只用了46M内存,cpu2%加减1
所以不存在效率问题
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
最初由 sqf 发布 个人认为是这样的:每个进程是有4G的内存空间,其种只有一部分是给用户使用的,其余是内核使用的,具体多少跟操作系统有关。进程中的所有线程公用这一空间。每个线程又自己的堆栈,如果用VC写程序的话,线程的默认堆栈是1M,可以在编译程序时修改。因此可以推算一个进程的线程数也就两千多个,如果线程堆栈该太小的话,有可能满足不了需要。我感觉通过注册表修改线程数是不可能的,可通过多进程或集群解决。
嗯,谢谢你的回答,我再查查资料验证下是不是这个问题,实在不行,只好费点劲,改用线程池了,这种一个连接创建一个线程的办法虽然土了点,但是胜在简单,呵呵
|
|
|