代码示例:
import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /** * @ClassName LockReentrantLockExample * @projectName: object1 * @author: Zhangmingda * @description: XXX * date: 2021/4/24. */ public class LockReentrantLockExample { public static void main(String[] args) { Lock lock = new ReentrantLock(); Runnable r = () -> { String tName = Thread.currentThread().getName(); System.out.println("子线程运行"); lock.lock(); System.out.println(tName + "准备睡觉了"); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(tName + "睡醒了"); lock.unlock(); }; Thread thread = new Thread(r,"child1"); Thread thread1 = new Thread(r,"child2"); Thread thread2 = new Thread(r,"child3"); thread.start(); thread1.start(); thread2.start(); } }
java 多线程 Thread 锁ReentrantLock;Condition等待与通知
原文:https://www.cnblogs.com/zhangmingda/p/14698504.html