package com.example.demo.thread;
import java.util.concurrent.locks.ReentrantLock;
/**
* @projectName: demo
* @package: com.example.demo.thread
* @className: TestTiket
* @author:
* @description: TODO
* @date: 2021/12/8 16:02
*/
public class TestTicket2 {
public static void main(String[] args) {
Ticket2 ticket2 = new Ticket2();
new Thread(ticket2, "学生").start();
new Thread(ticket2, "程序员").start();
new Thread(ticket2, "黄牛").start();
}
}
class Ticket2 implements Runnable {
private final ReentrantLock lock = new ReentrantLock();
private int num = 10;
@Override
public void run() {
this.buy();
}
private void buy() {
while (true) {
try {
lock.lock();
if (num <= 0) {
break;
}
System.out.println(Thread.currentThread().getName() + num);
num--;
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
lock.unlock();
}
}
}
}
10、Lock
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 大体来说Lock、ReentrantLock与Synchronized很相似,对对象加锁 首先是Lock接口: l...
- node_modules包含什么:gulp本身,gulp依赖的模块; 问题:1文件夹过度过碎,导致传输速度慢;2复...
- java提供了两种内置的锁的实现,一种是由JVM实现的synchronized和JDK提供的Lock,当你的应用是...
- Look接口具有和synchronized关键字相似的同步功能、且比synchronized更加灵活、更具操作性,...
- Win10永久禁用键盘上的num lock键,解决打字时经常误触的困扰 键盘右侧的数字区域除了包含打字经常用到的数...