import java.util.concurrent.locks.ReentrantLock;
/**
* PrivateRyan
* 2021.11.5
* 线程池的使用
*/
public class Window78 implements Runnable{
private int ticket=100;
private ReentrantLock lock=new ReentrantLock();
@Override
public void run() {
Thread.currentThread().setName("宝贵线程");
while (true){
try {
lock.lock();
if (ticket>0){
try {
Thread.sleep(30);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()+":"+ticket);
try {
Thread.sleep(30);
} catch (InterruptedException e) {
e.printStackTrace();
}
ticket--;
}else {
break;
}
}finally {
lock.unlock();
}
}
}
}
线程池基础练习2
最新推荐文章于 2024-08-13 22:32:32 发布
本文介绍了如何在Java中使用ReentrantLock进行线程安全的编程。示例展示了如何创建一个售票窗口模拟,通过ReentrantLock确保多线程环境下对票数的正确递减,避免资源竞争问题。
4万+

被折叠的 条评论
为什么被折叠?



