线程池

创建线程需要时间,如果有不同的小任务要完成,就可以事先创建许多线程,在应完成这些任务时发出请求。这个线程数最好在需要更多的线程时增加,在需要释放资源时减少。

不需要自己创建线程池,系统已经有一个ThreadPool类管理线程。这个类会在需要时增减池中线程的线程数,直到达到最大的线程数。池中的最大线程数是可以配置的。在双核CPU中,默认设置为1023个工作线程和1000个Vo线程。

也可以指定在创建线程池时应立即启动的最小线程数,以及线程池中可用的最大线程数。如果有更多的作业要处理,线程池中线程的个数也到了极限,最新的作业就要排队,且必须等待线程完成其任务。

程序代码示例

using System;

using System.Threading;

namespace _093_ThreadPool

{

class Program

{

static void RexThreadMethod(object state) {

Console.WriteLine("点赞关注王東東Rex线程开始了"+Thread.CurrentThread.ManagedThreadId);

Thread.Sleep(2000);

Console.WriteLine("线程结束点赞关注完成" + Thread.CurrentThread.ManagedThreadId);

}

static void Main(string[] args)

{

Console.WriteLine("C#有你才更有意义,线程开启方式线程池");

//开启一个工作线程

ThreadPool.QueueUserWorkItem(RexThreadMethod);

ThreadPool.QueueUserWorkItem(RexThreadMethod);

ThreadPool.QueueUserWorkItem(RexThreadMethod);

ThreadPool.QueueUserWorkItem(RexThreadMethod);

ThreadPool.QueueUserWorkItem(RexThreadMethod);

ThreadPool.QueueUserWorkItem(RexThreadMethod);

ThreadPool.QueueUserWorkItem(RexThreadMethod);

Console.ReadKey();

}

}

}

程序执行结果

加客服微信:qsiq17,开通VIP下载权限!VIP全站资源免费下载!!!