C#多线程------生产者和消费者.续
来源:互联网 发布:遗传算法的基本流程图 编辑:程序博客网 时间:2024/06/05 06:49
下面定义生产者类 CellProd 和消费者类 CellCons,它们都只有一个方法ThreadRun(),以便在Main()函数中提供给线程的ThreadStart代理对象,作为线程的入口。
public class CellProd
{
}
{
}
然后在下面这个类MonitorSample的Main()函数中,我们要做的就是创建两个线程分别作为生产者和消费者,使用CellProd.ThreadRun()方法和CellCons.ThreadRun()方法对同一个Cell对象进行操作。
public class MonitorSample
{
}
在上面的例程中,同步是通过等待Monitor.Pulse()来完成的。首先生产者生产了一个值,而同一时刻消费者处于等待状态,直到收到生产者的“脉冲(Pulse)”通知它生产已经完成,此后消费者进入消费状态,而生产者开始等待消费者完成操作后将调用Monitor.Pulese()发出的“脉冲”。
它的执行结果很简单:
Produce: 1
Consume: 1
Produce: 2
Consume: 2
Produce: 3
Consume: 3
...
...
Produce: 20
Consume: 20
事实上,这个简单的例子已经帮助我们解决了多线程应用程序中可能出现的大问题,只要领悟了解决线程间冲突的基本方法,很容易把它应用到比较复杂的程序中去。
- C#多线程------生产者和消费者.续
- c#多线程 生产者和消费者
- C#多线程------生产者和消费者
- C#多线程--生产者和消费者
- C#多线程学习(三) 生产者和消费者
- C#多线程学习(三) 生产者和消费者
- C#多线程学习(三) 生产者和消费者
- C#多线程学习(三) 生产者和消费者
- C#多线程学习(三) 生产者和消费者
- C#多线程学习-----生产者和消费者
- C#多线程学习(三) 生产者和消费者
- C#多线程学习(三) 生产者和消费者
- C#多线程学习(三) 生产者和消费者
- C#多线程的生产者和消费者
- C#多线程学习(三) 生产者和消费者
- C#多线程学习(三) 生产者和消费者
- C#多线程学习(三) 生产者和消费者
- C#多线程学习(三) 生产者和消费者
- Flex与.NET互操作:基于WebService…
- 线程的暂停与重新启动
- C#中利用多线程控制打印的暂停和继…
- C#多线程------生产者和消费者
- JAVA泛型编程笔记
- C#多线程------生产者和消费者.续
- C#多线程------- 多线程的自动管理…
- C#多线程学习-----多线程的自动管…
- jQuery.Form插件介绍
- C#多线程学习------ 互斥对象
- 【IO外挂】大量输入输出外挂模板
- MSSQL Case when用法
- sql语句中日期时间格式化查询
- WPF是什么 ?