.net(C#)中,一个进程最多能创建多少线程
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.net(C#)中,一个进程最多能创建多少线程相关的知识,希望对你有一定的参考价值。
如题:做即时聊天 想让服务器为每个用户 创建独立的线程 跟用户交互(怕万一线程创建有限制.达不到预期的效果) 还有,如果服务器为每个用户创建独立线程的方式去通信,人数多了 会不会消耗的资源过大.. 有没有其它好的解决方案
理论上,一个进程可用虚拟空间是2G,默认情况下,线程的栈的大小是1MB,所以理论上最多只能创建2048个线程,但是一般不会到这么大,因为主线程要占内存,可能还要多点。如果要创建多于2048的话,必须修改编译器的设置:菜单栏的“项目”->“***属性”,选择“配置属性”下的“链接器”下的“系统”,将堆栈保留大小设置为:524288,这个值就是512KB,这里的单位是字节,所以要自己换算,这样理论上能创建4096个进程。 参考技术A 我搜索了网络和msdn,答案基本如下:msdn上写着:
Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows CE 平台说明:
可设置的最大值为 256。
下面这个方法可以控制线程池的数量。
ThreadPool.SetMaxThreads
线程池好像可以设很大的,2000没问题,但是都是在挂起等待中,不过一个进程能访问的内存数量32位系统里好像最大只有2gb,按照你的项目是聊天软件看,估计线程数量不是问题,每个线程能分配的内存和服务器cpu的线程处理能力才是问题。呵呵。本回答被提问者采纳 参考技术B 真正部署发布后,是和iis有关,里面有设置的选项。一般没有问题的。 参考技术C 256
以上是关于.net(C#)中,一个进程最多能创建多少线程的主要内容,如果未能解决你的问题,请参考以下文章