java使用lock实现一个简单的生产者和消费者模式
Posted 沙和尚-
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java使用lock实现一个简单的生产者和消费者模式相关的知识,希望对你有一定的参考价值。
import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.ReentrantLock; public class Five { public static void main(String[] args) { final Service myService = new Service(); for(int i = 0 ; i < 10 ; i ++){ Thread thread = new Thread(new Runnable() { @Override public void run() { while(true){ myService.push(); } } }); thread.start(); } for(int i = 0 ; i < 10 ; i ++){ Thread thread = new Thread(new Runnable() { @Override public void run() { while(true){ myService.pop(); } } }); thread.start(); } } } class Service{ //创建锁 private ReentrantLock lock = new ReentrantLock(); //创建通讯器 private Condition condition = lock.newCondition(); //创建一个开关 private boolean off = false; public void push(){ try { lock.lock(); if(off == false) condition.wait(); System.out.println("生产!"); off = false; condition.signalAll(); } catch (Exception e) { // TODO: handle exception }finally { lock.unlock(); } } public void pop(){ try { lock.lock(); if(off == true) condition.wait(); System.out.println("消费!"); off = true; condition.signalAll(); } catch (Exception e) { // TODO: handle exception }finally { lock.unlock(); } } }
以上是关于java使用lock实现一个简单的生产者和消费者模式的主要内容,如果未能解决你的问题,请参考以下文章
java并发编程Lock & Condition 协调同步生产消费