多线程之同步输出奇偶数[C#]

来源:互联网 发布:全职高手 知乎 编辑:程序博客网 时间:2024/06/07 15:22

在论坛上见有人说有这么个经典的面试题,我也来说说,^_^

 

此题涉及到:多线程,同步,排他

那前面顺便讲一下两个排他应用的AutoResetEventManualResetEvent的区别

AutoResetEvent:通知正在等待的线程已发生事件
ManualResetEvent :通知一个或多个正在等待的线程已发生事件


它们常用的三个事件有:
1)Set();  2)ReSet();   3)WaitOne();
字面上来说,一个是自动,一个是手动,其最跟本的区别是
一.AutoResetEvent的Set()只允许一个线程运行.也就是说AutoResetEvent的Set()方法,只会使一个线程得到运行,而使其它处于

WaitOne()状态的线程自动为ReSet()的无信号状态.
二.而ManualResetEvent 的Set()则不会使处于WaitOne()状态的线程自动为ReSet()的无信号状态.如果想其处于无信号状态,必须手动调用ReSet()方法.

 //-----------------------------------------------------------------------

下面就直接给代码了