线程池的使用

目的:
      能动地有效地处理繁忙的客户段请求。
做法:
      开启多个线程,使用分流形式处理客户段的请求。
      包括创建自己的线程池和使用系统提供的线程池。

例子:创建自己的线程池
       
using System.Threading;

class MyThreadPool
{
      ReusableThread[] m_ThreadPool;

      public MyThreadPool(int pSize)
      {
           m_ThreadPool = new ReusableThread[pSize];
           
           for(int i=0; i<pSize; i++)
           {
                m_ThreadPool[i] = new ReusableThread();
           }
      }

      public ReusableThread GetThread()
      {
           lock(this)
           {
               ReusableThread vThread = GetAvailableThread();
               
               return vThread;
           }
      }

      public ReusableThread GetAvailableThread()
      {
          ReusableThread vReturnThread = null;

          foreach(ReusableThread vThread in m_ThreadPool)
          {
                 if(vThread.IsAvailable)
                 {
                      vThread.IsAvailable = false;
                      vReturnThread = vThread;
                      
                      break;
                 }
          }

          return vReturnThread;
      }

      public void PutThread(ReusableThread pThread)
      {
          lock(this)
          {
                pThread.IsAvailable = true;
          }
      }
}
//--------------------------------ReusableThread-------------------
       public delegate void StartupMethod();
       class ReusableThread
       {
           private Thread m_Thread;
           public bool IsAvailable = true;
           private StartupMethod m_StartupMethod;

           public ReusableThread()
           {
                m_Thread = new Thread(new ThreadStart(CommonStart));
           }

           public void Join()
           {
               m_Thread.Join();
           }

           public void Run(StartupMethod pStartupMethod)
           {
               m_StartupMethod = pStartupMethod;
               m_Thread.Start();
           }

           public void CommonStart()
           {
                if (m_StartupMethod ! =   null )
              {
                    m_StartupMethod();
                    m_StartupMethod 
= null;
               }

           }
      }

//---------------------------Excute code----------------
public class mainApp
{
     public void RunWithThread()
     {
          MyThreadPool vPool = new MyThreadPool(20);
          ReusableThread vThead = vPool.GetThread();
          if(vThread == null)
          {
                return;
          }
          else
          {
               vThread.Run(new StartupMethod(MyCode));
               vThread.Join();
               vPool.PutThread(vThread);
          }
     }
    
      public void MyCode()
      {
           Thread.Sleep(2000);
      }
}
springboot052基于Springboot+Vue旅游管理系统毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值