ThreadPool的线程开启、线程等待、线程池的设置、定时功能

本文详细介绍了ThreadPool线程池的原理和使用,包括QueueUserWorkItem方法的两种重载,线程等待的实现,以及如何设置线程池的工作线程和IO线程数量。此外,还探讨了ThreadPool的定时功能,并对比了其他定时器选项。适合C++后端开发者深入理解线程池操作。
摘要由CSDN通过智能技术生成

一. ThreadPool简介

  ThreadPool简介:ThreadPool是一个线程池,当你需要开启n个线程时候,只需把这个指令抛给线程池,它将自动分配线程进行处理,它诞生于.Net 2.0时代。

  ThreadPool与Thread的区别:

    ①:Thread每开启一个异步任务,就需要使用一个Thread,具有专一性,即使Thread已经死掉,仍然需要占用资源。

    ②:ThreadPool能实现n个线程处理n+m个异步任务,且没有死线程,默认都是初始化的。

二. 深究ThreadPool类

1:QueueUserWorkItem方法,将方法排入队列以便开启异步线程,它有两个重载。

  a:QueueUserWorkItem(WaitCallback callBack),WaitCallback是一个有一个object类型参数且无返回值的委托

  b:QueueUserWorkItem(WaitCallback callBack, object state),WaitCallback是一个有一个object类型参数且无返回值的委托,state即WaitCallback中需要的参数, 不推荐这么使用,存在拆箱装箱的转换问题,影响性能。

使用方式:

  a:严格的卡定义的写法,第一个重载和第二个重载均是处理有一个参数的函数,大于一个参数需要封装一个实体类,所需参数在实体类的构造函数中引入,然后调用第一个重载即可.

(不推荐这种写法)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值