编写一个多线程程序,模拟2个生产者生产产品,3个消费者消费产品。2个生产者不停的生产商品3个消费者不停的消费产品。
2015-01-08 21:01
801 查看
粗略代码:
class Resource { private String name; private int count = 0; private boolean flag = true; Resource(String name) { this.name = name; } public synchronized void product() { if(flag) { this.name = "---"+this.count; System.out.println(Thread.currentThread().getName() + "生产者---" + this.name); } flag = false; this.count++; } public synchronized void consume() { if(!flag) { System.out.println(Thread.currentThread().getName() + "消费者---------" + this.name); } flag = true; } } class Product implements Runnable { private Resource sr; Product(Resource sr) { this.sr = sr; } public void run() { while(true) { if(sr != null) { sr.product(); } } } } class Consume implements Runnable { private Resource sr; Consume(Resource sr) { this.sr = sr; } public void run() { while(true) { if(sr != null) { sr.consume(); } } } } class DemoRunnable { public static void main(String[] args) { Resource sr = new Resource("产品"); Product p = new Product(sr); Consume c =new Consume(sr); Thread t1 = new Thread(p); Thread t2 = new Thread(p); Thread c1 = new Thread(c); Thread c2 = new Thread(c); Thread c3 = new Thread(c); t1.start(); t2.start(); c1.start(); c2.start(); c3.start(); } }
相关文章推荐
- 编写一个多线程程序,模拟2个生产者生产产品,3个消费者消费产品。2个生产者不停的生产商品3个消费者不停的消费产品。
- 生产者消费者问题 这是一个非常经典的多线程题目,题目大意如下:有一个生产者在生产产品,这些产品将提供给若干个消费者去消费,为了使生产者和消费者能并发执行,在两者之间设置一个有多个缓冲区的缓冲池,生产者
- 生产者消费者问题 这是一个非常经典的多线程题目,题目大意如下:有一个生产者在生产产品,这些产品将提供给若干个消费者去消费,为了使生产者和消费者能并发执行,在两者之间设置一个有多个缓冲区的缓冲池,生产者
- 生产者消费者问题 这是一个非常经典的多线程题目,题目大意如下:有一个生产者在生产产品,这些产品将提供给若干个消费者去消费,为了使生产者和消费者能并发执行,在两者之间设置一个有多个缓冲区的缓冲池,生产者
- 多线程实例三----多生产者多消费者(模拟kfc多生产和多消费)
- 一个线程作为生产者,一个线程作为消费者。生产者每生产一次,消费者就消费一次。生产者每次生产一定数量的商品,加上上次消费剩余的数量,而总数量不超过1000;总感觉代码不是很完善,求指教??
- 编写一个生产者,消费者多线程程序,一个线程随机产生数据,另一个线程显示所产生的数据.
- 在并发编程中使用生产者和消费者模式能够解决绝大多数并发问题。该模式通过平衡生产线程和消费线程的工作能力来提高程序的整体处理数据的速度。
- 编写多线程程序,模拟多个人通过一个山洞。
- 作业1 编写多线程程序,模拟多个人通过一个山洞。
- 笔试题11:编写一个生产者与消费者的多线程例子(源码)
- Thread线程之 多生产者与多消费者模拟生产消费
- 一个生产者与消费者模型的多线程例子程序
- 编写多线程程序,模拟多个人通过一个山洞。这个山洞每次只能通过一个人,每个人通过山洞的时间为2秒(sleep)。随机生成10个人,都要通过此山洞,用随机值对应的字符串表示人名,打印输出每次通过山洞的人名
- 编写多线程程序,模拟多个人通过一个山洞。这个山洞每次只能通过一个人,每个人通过山洞的时间为2秒(sleep)。随机生成10个人,都要通过此山洞,用随机值对应的字符串表示人名,打印输出每次通过山洞的人名
- 编写多线程程序,模拟多个人通过一个山洞。这个山洞每次只能通过一个人,每个人通过山洞的时间为2秒(sleep)。随机生成10个人,都要通过此山洞,用随机值对应的字符串表示人名,打印输出
- 笔试题11:编写一个生产者与消费者的多线程例子(源码)
- 编写多线程程序,模拟多个人通过一个山洞。这个山洞每次只能通过一个人,每个人通过山洞的时间为2秒(sleep)。随机生成10个人,都要通过此山洞,用随机值对应的字符串表示人名,打印输出每次
- 编写多线程程序,模拟多个人通过一个山洞
- 生产者与消费者模型(基于单链表、环形队列、多线程、多消费多生产)