java中多线程通信实例:生产者消费者模式
2014-07-31 15:33
459 查看
线程间的通信:
其实就是多个线程再操作同一个资源,但是操作的动作不同
当某个线程进入synchronized块后,共享数据的状态不一定满足该线程的需要,需要其他线程改变共享数据的状态后才能运行,而由于当时线程对共享资源时独占的,它必须解除对共享资源的锁定的状态,通知其他线程可以使用该共享资源。
Java中的 wait(),notify(),notifyAll()可以实现线程间的通信。
生产者--消费者问题是典型的线程同步和通信问题
/**
*
生产者和消费者问题,生产者生成出产品,消费者去购买产品
* 在这里创建三个线程,一个主控线程,一个生产者线程,一个消费者线程,
*
另外,创建一个堆栈 Stack,生成线程生成的产品放置到堆栈中,然后消费者线程再堆栈中去走产品
*
*/
建立一个堆栈
代码如下:
创建一个生产者类
代码如下:
创建一个消费者类
代码如下:
主函数调用
代码如下:
其实就是多个线程再操作同一个资源,但是操作的动作不同
当某个线程进入synchronized块后,共享数据的状态不一定满足该线程的需要,需要其他线程改变共享数据的状态后才能运行,而由于当时线程对共享资源时独占的,它必须解除对共享资源的锁定的状态,通知其他线程可以使用该共享资源。
Java中的 wait(),notify(),notifyAll()可以实现线程间的通信。
生产者--消费者问题是典型的线程同步和通信问题
/**
*
生产者和消费者问题,生产者生成出产品,消费者去购买产品
* 在这里创建三个线程,一个主控线程,一个生产者线程,一个消费者线程,
*
另外,创建一个堆栈 Stack,生成线程生成的产品放置到堆栈中,然后消费者线程再堆栈中去走产品
*
*/
建立一个堆栈
代码如下:
创建一个生产者类
代码如下:
创建一个消费者类
代码如下:
主函数调用
代码如下:
相关文章推荐
- Java多线程之线程间通信--生产者/消费者模式
- 黑马程序员--JAVA基础复习之多线程(三)线程间通信 生产者消费者
- 经典多线程Java实例 生产者与消费者
- JAVA多线程模拟生产者与消费者_实例
- java多线程之消费者生产者模式
- java多线程交互 经典实例__生产者与消费者模型
- 基于java多线程来实现生产者和消费者的实例
- Java 多线程 生产者—消费者 通用模式(synchronized已被Lock替代!)
- JAVA生产者与消费者模式 BlockingQueue与ExecutorService实例
- java多线程之消费者生产者模式
- java多线程之消费者生产者模式
- JAVA多线程实例(生产者与消费者问题)
- java之多线程实例 生产者与消费者
- java多线程 ----生产者消费者模式
- Java基础多线程间通讯之多生产者、多消费者模式示例:
- 【设计模式】java生产者和消费者的代码实例
- java多线程之消费者生产者模式
- java多线程之消费者生产者模式 (转)
- java多线程之消费者生产者模式
- Java多线程之消费者生产者模式