生产者消费者

原创 2015年11月18日 10:22:04
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();
    }

}

C++多线程学习:生产者消费者问题

多线程相关知识点: C++11 线程库:http://zh.cppreference.com/w/cpp/thread 互斥量和锁 std::unique_lock::lock 和 std::uni...
  • quzhongxin
  • quzhongxin
  • 2015年08月19日 20:56
  • 5545

生产者消费者模型你知道多少

进入正题之前先说点故事。从最开始学java的那里开始:我是从08年下半年开始学Java,在《我的六年程序之路》中提到了一些。当时比较简单,每天看尚学堂的视频(对于初学者而言看视频好一些。),然后写代码...
  • luohuacanyue
  • luohuacanyue
  • 2013年11月12日 08:07
  • 33543

JS实现经典生产者消费者模型

使用node的定时器timer实现经典的生产者消费者模型。
  • shishuo365
  • shishuo365
  • 2014年07月05日 09:29
  • 2457

Qt 生产者消费者模型

基于QT实现的生产者消费者模型 不足之处请留言指出 //global.h #ifndef GLOBAL_H #define GLOBAL_H #include #include #inclu...
  • axylp123
  • axylp123
  • 2016年08月27日 17:46
  • 250

Java多线程之简单生产者和消费者例子

一,在本例子中,有三个类,dataStore(存放数据类),consumer(消费者),producer(生产者)。 二,看源码例子: 类dataStore: import java.lang....
  • ganpengjin1
  • ganpengjin1
  • 2015年04月18日 15:13
  • 1832

Qt之线程同步(生产者消费者模式 - QSemaphore)

简述生产者将数据写入缓冲区,直到它到达缓冲区的末尾,这时,它从开始位置重新启动,覆盖现有数据。消费者线程读取数据并将其写入标准错误。Semaphores 使得比 mutexes 有一个更高级的并发性成...
  • u011012932
  • u011012932
  • 2016年09月23日 16:33
  • 4132

生产者/消费者模式(阻塞队列)

生产者/消费者模式(阻塞队列) 博客分类:  j2EE 制造thread多线程软件测试JDK  生产消费者模式  貌似也是阻塞的问题  花了一些时间终于弄明白这个鸟...
  • autumn20080101
  • autumn20080101
  • 2013年07月26日 08:48
  • 37871

C++编程实现生产者/消费者模型(linux系统编程)

参考了这篇实现相同功能的java程序http://www.cnblogs.com/linjiqin/archive/2011/04/15/2016820.html 代码如下: p_c.h /...
  • wsyxhwj
  • wsyxhwj
  • 2016年06月28日 19:21
  • 1387

生产者消费者问题(PV操作)

一、明确定义 要理解生产消费者问题,首先应弄清PV操作的含义:PV操作是由P操作原语和V操作原语组成(原语是不可中断的过程),对信号量进行操作,具体定义如下:     P(S):①将信号量...
  • u014174955
  • u014174955
  • 2015年03月02日 19:53
  • 2724

java泛型(二)? super T 和 ? extends T 消费者和生产者

经常发现有List、Set的声明,是什么意思呢?表示包括T在内的任何T的父类,表示包括T在内的任何T的子类,下面我们详细分析一下两种通配符具体的区别。 extends List foo3的通配符声明,...
  • Victor_Cindy1
  • Victor_Cindy1
  • 2016年01月04日 23:09
  • 715
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:生产者消费者
举报原因:
原因补充:

(最多只允许输入30个字)