如果设计一个服务器程序,每当处理用户请求时,都开始一个线程,将会在一 定程序上消耗服务器的资源。为此,一个最好的解决方法就是在服务器启动之前 ,事先创建一些线程对象,然后,当处理客户端请求时,就从这些建好的线程中 获得线程对象,并处理请求。保存这些线程对象的结构就叫做线程池。
在C#中可以通过System.Threading.ThreadPool类来实现,在默认情况下, ThreadPool最大可建立500个工作线程和1000个I/O线程(根据机器CPU个数和.net framework版本的不同,这些数据可能会有变化)。下面是一个用C#从线程池获得 线程的例子:
private static void execute(object state){ Console.WriteLine(state); }static void Main(string[] args){ int workerThreads; int completionPortThreads; ThreadPool.GetMaxThreads(out workerThreads, out completionPortThreads); Console.WriteLine(workerThreads); Console.WriteLine(completionPortThreads); ThreadPool.QueueUserWorkItem(execute,"线程1"); // 从线程池中得到一个线程,并运行execute ThreadPool.QueueUserWorkItem(execute, "线程2"); ThreadPool.QueueUserWorkItem(execute, "线程3"); Console.ReadLine();}
下图为上面代 码的运行结果。
要注意的是,使用ThreadPool获得的线程都是后台线程。
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索c#
, 线程
, c# 线程池
, console
, execute
, 多线程线程c#
, 请求c#下载
, 多线程.netwindows 服务c#
, c#线程
, 一个
threadpool
c站、c语言、cf、ch、c罗,以便于您获取更多的相关知识。