.net(C#)中,一个进程最多能创建多少线程

.net(C#)中,一个进程最多能创建多少线程,第1张

理论上可用虚拟空间是2G,默认情况下,Thread的栈的大小是1MB,所以理论上最多只能创建2048个Thread,这个栈的大小默认值是编译器预设的,你也可以改.你这个不是问题的,服务器只是用于一座桥的作用,并不提供搭烂具体通讯,一般做法是这样的:用户1进入服务器,给他一个标记结构,比如包含用户1的IP+他的可用端口.....用户2进来也这么做,用户1跟用户2对凯培话:::服务器给发起请求的知孙漏用户安排任务,,,给目标IP+Port发送信息,这样服务器自己不出线程资源和端口资源...

不过呢,你是要做C/S架构还是B/S架构??

1、请参见 WaitCallback 委托的声明:

public delegate void WaitCallback(object state);

由此可见,需要一个无返回值的,并且有一个object型参数的方法侍模才可以匹配。

问题中的t1满足,t2没有参数,所以不满足。

2、ThreadPool有一个默认的上限和下限,即线程池中同时存在的最大的线程数和默认的保留线程数。

好像.net默认上限是25

可以通过 ThreadPool.GetMaxThreads方法 来获取线程池老握缓的当前上皮旦限和下限值。

通过ThreadPool.SetMaxThreads方法来设置线程池的当前上限和下限值。

每个进程都有一个线程池,线程池是系统默认的;并不是所有定义的线程自动地被加入到线程池中。能自动加入线程池中的线程有以下几个情况:

用 Task 或 Task<TResult>对象来异步执行某些任务

来自 System.Threading.Timer 类的回调

I/O异步 *** 作(如SOCKET异步明袜收发、SerialPort异步收发)穗衡

你自己定义线程,可以使用激族激ThreadPool.QueueUserWorkItem方法,将自定义线程加入到线程池中。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12478303.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存