您的位置:首页 > 其它

AutoResetEvent实现生产者消费者

2015-06-28 18:48 267 查看
用ManulResetEvent实现生产者消费者,声明了两个ManulResetEvent类型变量,其实用一个也可以。

现在用AutoResetEvent实现。Auto和Manual的区别是Auto只唤醒一个线程,Manual是唤醒所有。

public class AreTest
{
AutoResetEvent are;
public AreTest(AutoResetEvent are)
{ this.are = are; }
public void Add()
{

while (true)
{
Thread.Sleep(1000);
Console.WriteLine(Thread.CurrentThread.Name + "\t生产者");

are.Set();
Console.WriteLine("通知消费者");
are.Reset();
Console.WriteLine("停止生产者");
are.WaitOne();

}

}
public void Del()
{
while (true)
{
Thread.Sleep(2000);
Console.WriteLine(Thread.CurrentThread.Name + "\t消费者");
are.Set();
Console.WriteLine("通知生产者");
are.Reset();
Console.WriteLine("停止消费者");
are.WaitOne();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: