c#线程--生产者和消费者
2013-07-11 17:05
155 查看
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Security; using System.Text; using System.Threading; namespace ConsoleApp { class Test { static void Main() { product pro = new product(); setProduct set = new setProduct(pro, 100); getProduct get = new getProduct(pro, 100); Thread producer = new Thread(new ThreadStart(set.run)); Thread consumer = new Thread(new ThreadStart(get.run)); producer.Start(); consumer.Start(); Console.ReadLine(); } } class getProduct { private product pro; private int quality = 0; public getProduct(product pro,int request) { this.pro = pro; quality = request; } public void run() { for (int i = 0; i < quality; i++) { pro.getProduct(); } } } class setProduct { private product pro; private int quality = 0; public setProduct(product pro, int request) { this.pro = pro; quality = request; } public void run() { for (int i = 0; i < quality; i++) { pro.setProduct(i); } } } class product { private int cellContents; private bool setflage = false; public int setProduct(int n) { lock (this) { if (setflage) { Monitor.Wait(this); } Console.WriteLine("生产中。。。"+n); cellContents = n; setflage = true; Monitor.Pulse(this); } return cellContents; } public void getProduct() { lock (this) { if (!setflage) { Monitor.Wait(this); } Console.WriteLine("消耗中。。。" + cellContents); setflage = false; Monitor.Pulse(this); } } } }
View Code
相关文章推荐
- C# 线程(四):生产者和消费者
- C#中生产者线程和消费者线程同步的实现
- C#的多线程机制探索(三)—线程的同步和通讯(生产者和消费者)
- 用C#线程技术模拟“生产者-消费者”经典进程同步问题
- c#线程实现生产者消费者
- 线程经典,生产者与消费者问题
- java线程(三):线程设计模型—生产者和消费者
- C#多线程学习之(三)生产者和消费者用法分析
- Java基础复习:线程通信、生产者消费者
- linux网络编程之posix 线程(三):posix 匿名信号量与互斥锁 示例生产者--消费者问题
- Java线程:并发协作-生产者消费者模型
- 11.[个人]C++线程入门到进阶(11)----生产者消费者经典问题
- 生产者消费者问题之Java线程实现
- Java基础学习__多线程(线程间通信--生产者消费者JDK5.0升级版)
- 线程协作-生产者/消费者问题
- 线程实现消费者和生产者机制
- 生产者和消费者 用Semaphore来控制线程
- 两个线程之间的同步(生产者与消费者问题)性能优化
- JAVA synchronized 线程经典 生产者消费者 两个完全不同的实现的方式
- LINUX 线程锁的设置不当案例(生产者消费者模型小BUG)