当前位置:首页 > 开发 > 编程语言 > Java > 正文

java 实现生产者消费者模式

发表于: 2014-05-09   作者:annan211   来源:转载   浏览:
摘要: package cosu_pro.pc; import java.util.Random; import java.util.concurrent.BlockingQueue; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.c
package cosu_pro.pc;

import java.util.Random;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.LinkedBlockingQueue;

public class LinkBolckingQueuePC {
	public static void main(String[] args) {
		Storage storage = new Storage();
		Consumer c = new Consumer(storage);
		Producer p = new Producer(storage);

		ExecutorService execuService = Executors.newCachedThreadPool();
		execuService.submit(p);
		execuService.submit(c);
	}

}

// storage
 class Storage{
	 BlockingQueue<Integer> storage = new LinkedBlockingQueue<Integer>(10);

	 public int  push(int i){
		 storage.add(i);
		 return i;
	 }

	 public int prop() throws InterruptedException{
		return  storage.take();
	 }
 }

 // consumer
 class Consumer implements Runnable{

	private Storage storage = null;
	public Consumer(Storage s){
		this.storage = s;
	}

	@Override
	public void run() {
		// TODO Auto-generated method stub
		while(true){
			try {
				System.out.println("消费商品-----"+storage.prop());
				Thread.yield();
				Thread.sleep(100);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
 }

 class Producer implements Runnable{
	 private Storage storage = null;
	 public Producer(Storage s){
		 this.storage = s;
	 }
	@Override
	public void run() {
		// TODO Auto-generated method stub
		while(true){
			System.out.println("生产商品----"+storage.push(new Random().nextInt(10)));
			try {
				Thread.yield();
				Thread.sleep(100);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

 }

java 实现生产者消费者模式

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号