生产者消费者
class Source {
    private int num = 0;
    public synchronized void increase() {
        while(num != 0) {
            try {
                wait();
            } catch(Exception e) {
                e.printStackTrace();
            }
        }
        num++;
        System.out.println(num);
        notify();
    }
    public synchronized void decrease() {
        while(num == 0) {
            try {
                wait();
            } catch(Exception e) {
                e.printStackTrace();
            }
        }
        num--;
        System.out.println(num);
        notify();
    }
}

class Producer implements Runnable{
    private Source source;
    Producer(Source source) {
        this.source = source;
    }
    public void run() {
        for(int i=0; i<10; i++) {
            /*try {
            Thread.sleep((long)Math.random()*1000);
            }
            catch(Exception e) {
                e.printStackTrace();
            }*/
            source.increase();
        }
    }
}

class Consumer implements Runnable{
    private Source source;
    public Consumer(Source source) {
        this.source = source;
    }
    public void run() {
        for(int i=0; i<10; i++) {
            /*try {
            Thread.sleep((long)Math.random()*1000);
            }
            catch(Exception e) {
                e.printStackTrace();
            }*/
            source.decrease();
        }

    }
}

public class Mian {
    public static void main(String[] args) {
        Source s = new Source();
        new Thread(new Producer(s)).start();
        new Thread(new Consumer(s)).start();
    }

}
阅读更多
文章标签: 生产者 消费者
个人分类: 《设计模式》
想对作者说点什么? 我来说一句

生产者消费者问题的源代码

2008年12月11日 3KB 下载

java生产者消费者问题

2011年11月12日 176KB 下载

java生产者消费者

2018年02月03日 9KB 下载

生产者消费者源代码下载

2010年05月11日 28KB 下载

线程问题生产者消费者流程图

2011年02月17日 1.82MB 下载

没有更多推荐了,返回首页

不良信息举报

生产者消费者

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭