多线程中信号的有无与多线程有什么联系

来源:百度知道 编辑:UC知道 时间:2024/05/14 05:38:33
多线程中CreateEvent到底起什么作用?
信号的有无和多线程有什么直接关系?
谁能用自己的语言解释下多线程?

event可以和系统调度挂钩,所谓的内核对象(区别于用户对象)。
比如说,thread1读取数据包,thread2转换thread1读来的数据格式,那么比较低级(也是常见的做法)是设置定时器(timer)不停地让thread2去查询thread1的结果,而cpu就要耗费很多时间片去执行这个poling。
但如果设置一个event给thread1,在它完成读取一段数据后,就把这个hevnet设置为signaled(有信号),则操作系统就去统治thread2,可以转换了。这个期间,thread2是不活动的,不耗费cpu的,从而效率是远远高出定时器愚笨轮询的。