ManualResetEvent的理解

摘要:
首先弄清楚,ManualResetEvent是WaitEventHandler的一个子类。ManualResetEvent允许线程通过发信号互相通信。通常,此通信涉及一个线程在其他线程进行之前必须完成的任务。可以通过将布尔值传递给构造函数来控制ManualResetEvent的初始状态,如果初始状态处于终止状态,为true;否则为false。导致其他线程阻塞。当某个线程执行Set命令的时候,WaitOne接收这个信号,继续执行。

首先弄清楚, ManualResetEvent 是WaitEventHandler(等待事件句柄)的一个子类。
ManualResetEvent 允许线程通过发信号互相通信。通常,此通信涉及一个线程在其他线程进行之前必须完成的任务。
可以通过将布尔值传递给构造函数来控制 ManualResetEvent 的初始状态,如果初始状态处于终止状态,为 true;否则为 false。
关于Set()/ReSet()/WaitOne()
ReSet():将 ManualResetEvent 事件设置为非终止状态,即:保持等待。导致其他线程阻塞。或这样理解:reset()方法就是为waitone()准备的,reset()相当于开始初始化为阻止状态(false)。
Set():将 ManualResetEvent 事件设置为终止状态,即:不再保持等待。发出让等待线程可以继续进行的信号。
WaitOne():阻止当前线程,等待接收信号。当某个线程执行Set命令的时候,WaitOne接收这个信号,继续执行。

免责声明:文章转载自《ManualResetEvent的理解》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SpringBoot起飞系列-使用idea搭建环境(二)【MyEclipse 2015】 逆向破解实录系列【2】(纯研究)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【转】CUDA程序优化要点

CUDA程序优化应该考虑的点:精度:只在关键步骤使用双精度,其他部分仍然使用单精度浮点以获得指令吞吐量和精度的平衡;    目前 GPU 的单精度性能要远远超过双精度性能,整数乘法、求模、求余等运算的指令吞吐量也较为有限。在科学计算中,由于需要处理的数据量巨大,往往采用双精度或者四精度才能获得可靠的结果,目前的 Tesla 架构还不能很好的满足高精度计算的...

使用 suspend 和 resume 暂停和恢复线程

suspend 和 resume 的使用 在 Thread 类中有这样两个方法:suspend 和 resume,这两个方法是成对出现的。 suspend() 方法的作用是将一个线程挂起(暂停), resume() 方法的作用则是将一个挂起的线程重新开始并继续向下运行。 通过一个例子来看一下这两个方法的使用: public class SuspendT...

深入理解NIO(二)—— Tomcat中对NIO的应用

深入理解NIO(二)—— Tomcat中对NIO的应用 老哥行行好,转载和我说一声好吗,我不介意转载的,但是请把原文链接贴大点好吗 Tomcat大致架构 先贴两张图大致看一眼Tomcat的架构 Tomcat中只有一个Server,一个Server可以有多个Service,一个Service可以有多个Connector和一个Container; Ser...

最全的iOS面试题及答案-转载

1. Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? 答: Object-c的类不可以多重继承;可以实现多个接口,通过实现多个接口可以完成C++的多重继承;Category是类别,一般情况用分类好,用Category去重写类的方法,仅对本Category有效,不会影响到其他类与原...

浏览器工作原理和实践(三)——页面

《浏览器工作原理与实践》是极客时间上的一个浏览器学习系列,在学习之后特在此做记录和总结。 一、事件循环 消息队列是一种数据结构,可以存放要执行的任务。它符合队列“先进先出”的特点,也就是说要添加任务的话,添加到队列的尾部;要取出任务的话,从队列头部去取。 从上图可以看出,改造可以分为下面三个步骤: (1)添加一个消息队列; (2)IO 线程中产生的新任务...

【Python之路】特别篇--多线程与多进程

并发 与 并行 的区别: 解释一:并发是在同一实体上的多个事件,并行是在不同实体上的多个事件; 解释二:并发是指两个或多个事件在同一时间间隔发生,而并行是指两个或者多个事件在同一时刻发生。 并发:就是同时做多件事情。 例如:终端用户程序利用并发功能,在输入数据的同时响应用户输入。服务器利用并发,在处理第一个请求的同时响应第二个请求。只要你希望程序同时做多件...