首页 > 编程语言 > 详细

java生产者消费者实例

时间:2015-01-09 18:48:36      阅读:253      评论:0      收藏:0      [点我收藏+]

import java.util.Queue;
import java.util.LinkedList;
public class ProducerConsumerDemo {
public static void main(String[] args) {
MyQueue q = new MyQueue();
Producer p = new Producer(q);
Consumer c = new Consumer(q);
p.start();
c.start();
}
}
class Producer extends Thread {
MyQueue q = new MyQueue();
Producer(MyQueue q) {
this.q = q;
}
public void run() {
int i = 0;
while (true) {
q.push(i);
try {
notify();
} catch (Exception e) {}
System.out.println("producer: " + i);
i++;
}
}
}
class Consumer extends Thread {
MyQueue q = new MyQueue();
Consumer(MyQueue q) {
this.q = q;
}
public void run() {
while (true) {
if (q.size() > 0) {
System.out.println("consumer: " + q.pop());
} else {
try {
wait();
} catch (Exception e) {}
}
}
}
}
class MyQueue {
Queue queue = new LinkedList();
synchronized void push(Object obj) {
queue.offer(obj);
}
synchronized Object pop() {
return queue.poll();
}
long size() {
return queue.size();
}
}

java生产者消费者实例

原文:http://www.cnblogs.com/feilv/p/4213880.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!