线程池 ManualResetEvent[通俗易懂]

线程池 ManualResetEvent[通俗易懂]线程池:    “线程池”是可以用来在后台执行多个任务的线程集合。(有关背景信息,请参见使用线程处理。)这使主线程可以自由地异步执行其他任务。线程池通常用于服务器应用程序。每个传入请求都将分配给线程池中的一个线程,因此可以异步处理请求,而不会占用主线程,也不会延迟后续请求的处理。一旦池中的某个线程完成任务,它将返回到等待线程队列中,等待被再次使用。这种重用使应用程序可以避免为每个任…

大家好,又见面了,我是你们的朋友全栈君。

线程池:

  

  “线程池”是可以用来在后台执行多个任务的线程集合。(有关背景信息,请参见使用线程处理。)这使主线程可以自由地异步执行其他任务。

线程池通常用于服务器应用程序。每个传入请求都将分配给线程池中的一个线程,因此可以异步处理请求,而不会占用主线程,也不会延迟后续请求的处理。

一旦池中的某个线程完成任务,它将返回到等待线程队列中,等待被再次使用。这种重用使应用程序可以避免为每个任务创建新线程的开销。

线程池通常具有最大线程数限制。如果所有线程都繁忙,则额外的任务将放入队列中,直到有线程可用时才能够得到处理。

您可以实现自己的线程池,但是通过 ThreadPool 类使用 .NET Framework 提供的线程池更容易一些。

参见:https://msdn.microsoft.com/zh-cn/library/3dasc8as(vs.80).aspx

 

ManualResetEvent 类

  ManualResetEvent    允许线程通过发信号互相通信。  通常,此通信涉及一个线程在其他线程进行之前必须完成的任务。 

当一个线程开始一个活动(此活动必须完成后,其他线程才能开始)时,它调用 Reset 以将 ManualResetEvent 置于非终止状态。  此线程可被视为控制 ManualResetEvent。  调用 ManualResetEvent 上的 WaitOne 的线程将阻止,并等待信号。  当控制线程完成活动时,它调用 Set 以发出等待线程可以继续进行的信号。  并释放所有等待线程。 

一旦它被终止,ManualResetEvent 将保持终止状态,直到它被手动重置。  即对 WaitOne 的调用将立即返回。 

可以通过将布尔值传递给构造函数来控制 ManualResetEvent 的初始状态,如果初始状态处于终止状态,为 true;否则为 false。

ManualResetEvent   也可以同 staticWaitAllWaitAny 方法一起使用。

 参见:https://msdn.microsoft.com/zh-cn/library/system.threading.manualresetevent(v=vs.110).aspx

转载于:https://www.cnblogs.com/ChineseMoonGod/p/4272088.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/161170.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux mail发邮件_python邮件发送

    linux mail发邮件_python邮件发送linux安装mailx发邮件文章目录linux安装mailx发邮件原理安装配置qq的smtps服务器配置Peer的证书发布者为信任​ mail命令是Linux终端发送邮件用的最多的命令。mailx是mail命令的更新版本,基于BerkeleyMail8.1,意在提供POSIXmailx命令的功能,并支持MIME、IMAP、POP3、SMTP和S/MIME扩展。mailx在某些交互特性上更加强大,如缓冲邮件消息、垃圾邮件评分和过滤等。在Linux发行版上,mail

    2022年10月20日
    3
  • linux 网络ip设置方法,Linux配置ip地址的两种方法

    linux 网络ip设置方法,Linux配置ip地址的两种方法Linux配置ip地址的两种方法,实验环境为centos7.6方法1:nmcli工具配置(centos7以下版本不支持该方法)第一步,通过nmcliconnection查看网卡名称[root@localhost~]#nmcliconnectionNAMEUUIDTYPEDEVICEeth009be0948-faf1-43b6-a5a4-c19efab0bb48ethernet…

    2022年6月7日
    48
  • sqlmap怎么安装_sqlmapchik

    sqlmap怎么安装_sqlmapchik一前提需要安装python2,可以看“python2下载与安装”二下载官网下载三安装将下载的sqlmap.zip解压到文件夹sqlmap中,并拷贝到Python安装路径下四配

    2022年8月2日
    7
  • 喵友黎言卓:一个人的创业战争「建议收藏」

    喵友黎言卓:一个人的创业战争「建议收藏」大二选择辍学创业,没有团队、没有资金,个人生活极其窘困。这个站长还能坚持多久?24岁的创业者黎言卓,想做一款既带有社交与分享功能,但又与SNS不同;既可以写博客,却又与传统博客、轻博客、微博不同的产品。描述这款产品似乎有些拗口,总之,这个身处广州、在校期间被同学为电脑“天才”的年青人,2010年一个人编程、创办了一个叫“喵友”的博客社区。目前它已经有大约9000名用户,且每月以千人的数量在增长…

    2022年8月12日
    4
  • 阿里核心系统团队博客在哪_阿里云是谁创始人

    阿里核心系统团队博客在哪_阿里云是谁创始人http://csrd.aliapp.com/阿里核心系统团队博客基础极致分享Home招聘信息阿里核心系统团队介绍TFS运维平台改造1604天bylinqinginTFSTFS负责运维的同学在工作过程中,积累了各种运维脚本

    2022年8月13日
    4
  • 基于stm32和ov7725的智能循迹车

    基于stm32和ov7725的智能循迹车基于stm32f103zet6的智能循迹车。1.L298nIN1IN2控制一个轮子,IN3IN4控制另外一个。这里使用的是直流电机,控制如下:为了使用pwm进行调速,一定要记得用跳帽使调速度端为高电平。这样,输入不同占空比的pwm波就可以实现调速了。2.连接方式连接时一定要注意的一点就是一定要保证l298n与单片机共地,否则会出现控制端有输入但输出端无输出导致车不移动的…

    2022年9月23日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号