package com.lb;

import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.ReentrantLock;

public class test {
	private ReentrantLock lock;
	private Condition create = null;
	private Condition print = null;
	private volatile String num = "";
	private boolean flag = true;

	public static void main(String[] args) {

		new test().test2();

	}

	public test() {
		lock = new ReentrantLock();
		create = lock.newCondition();
		print = lock.newCondition();
	}

	public void test2() {
		Thread conThread = new Thread(new consumer());
		Thread creThread = new Thread(new productor());
		conThread.start();
		creThread.start();
	}

	class productor implements Runnable {
		@Override
		public void run() {
			// TODO Auto-generated method stub
			while (flag) {
				lock.lock();
				if (num.equals("")) {
					String value = String.valueOf(((int) (Math.random() * 10) % 6) + 1);
					System.out.println("create value is " + value);
					num = value;
					print.signalAll();
					lock.unlock();
				} else {
					try {
						create.await();
						lock.unlock();
					} catch (InterruptedException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
				try {
					Thread.sleep(100);
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}

		}

	}

	class consumer implements Runnable {
		@Override
		public void run() {

			// TODO Auto-generated method stub
			while (flag) {
				lock.lock();
				if (!num.equals("")) {
					System.out.println("consumer " + num);
					num = "";
					create.signalAll();
					lock.unlock();
				} else {
					try {
						print.await();
						lock.unlock();
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
				}

				try {
					Thread.sleep(100);
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}

	}
}

  

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。