package com.Trylockkk;
import java.sql.Connection;
import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.ReentrantLock;
public class Condition004 {
static class Thread1 extends Thread{
static ReentrantLock lock = new ReentrantLock();
static Condition cond = lock.newCondition();
@Override
public void run() {
try{
lock.lock();
System.out.println("获得锁");
cond.await(); //使当前线程等待
System.out.println("结束等待");
}catch (Exception e){
e.printStackTrace();
}finally {
lock.unlock();
}
}
}
public static void main(String[] args) {
try {
new Thread1().start();
Thread.sleep(1000);
Thread1.lock.lock();
System.out.println("主线程获得锁");
Thread1.cond.signal(); // 唤醒等待线程
} catch (InterruptedException e) {
e.printStackTrace();
}finally {
Thread1.lock.unlock();
}
}
}
Java Lock锁实现等待唤醒机制
最新推荐文章于 2023-11-07 10:12:53 发布