JUC中提供了Condition对象, 用于让指定线程等待与唤醒, 按照预期顺序执行, 它必须和ReentrantLock重入锁配合使用
Conddition用于替代wait() / notify()方法
notify 只能随机唤醒等待的线程, 而Condition可以唤醒指定的线程, 这样有利于更好的控制并发程序
Condition核心方法await() - 阻塞当前线程, 直到signal唤醒
signal() - 唤醒被await的线程, 从中断处继续执行
signalAll() - 唤醒所有被await() 阻塞的线程
package com.dongguo.concurrent.lock;
import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
/**
* @author Dongguo
* @date 2021/9/3 0003-14:36
* @description: Lock实现生产者消费者
*/
public class ThreadLockUnlockDemo {
public static void main(String[] args) {
Number number = new Number();
new Thread(() -> {
for (int i = 0; i {
for (int i = 0; i {
for (int i = 0; i {
for (int i = 0; i
关注
打赏