Java多线程中,有哪些经典案例可以体现生产者消费者模式?
- 内容介绍
- 文章标签
- 相关推荐
本文共计737个文字,预计阅读时间需要3分钟。
通过Java实现,5个盘子,生产者不断的产生热狗,最多5个。盘子上若有热狗,消费者就不断的吃热狗,直到吃完。
javapublic class ProducerAndConsumer { // 盘子数量 private static final int DISHES_COUNT=5; // 盘子数组 private static final Object[] dishes=new Object[DISHES_COUNT]; // 生产者标记 private static int producerIndex=0; // 消费者标记 private static int consumerIndex=0;
public static void main(String[] args) { // 创建生产者和消费者线程 Thread producer=new Thread(new Producer()); Thread consumer=new Thread(new Consumer()); // 启动线程 producer.start(); consumer.start(); }
// 生产者线程 static class Producer implements Runnable { @Override public void run() { while (true) { synchronized (dishes) { if (producerIndex // 消费者线程 static class Consumer implements Runnable { @Override public void run() { while (true) { synchronized (dishes) { if (consumerIndex public class ProducerAndConsumer {
/**
* title:main function:
本文共计737个文字,预计阅读时间需要3分钟。
通过Java实现,5个盘子,生产者不断的产生热狗,最多5个。盘子上若有热狗,消费者就不断的吃热狗,直到吃完。
javapublic class ProducerAndConsumer { // 盘子数量 private static final int DISHES_COUNT=5; // 盘子数组 private static final Object[] dishes=new Object[DISHES_COUNT]; // 生产者标记 private static int producerIndex=0; // 消费者标记 private static int consumerIndex=0;
public static void main(String[] args) { // 创建生产者和消费者线程 Thread producer=new Thread(new Producer()); Thread consumer=new Thread(new Consumer()); // 启动线程 producer.start(); consumer.start(); }
// 生产者线程 static class Producer implements Runnable { @Override public void run() { while (true) { synchronized (dishes) { if (producerIndex // 消费者线程 static class Consumer implements Runnable { @Override public void run() { while (true) { synchronized (dishes) { if (consumerIndex public class ProducerAndConsumer {
/**
* title:main function:

