package org.example;
public class Main {
public static void main(String[] args) {
Tickets tickets = new Tickets();
//并发:多线程操作同一个资源类 ,把资源丢入线程
new Thread(()->{
for(int i = 0;i<60;i++){
tickets.sale();
}
}).start();
new Thread(()->{
for(int i = 0;i<60;i++){
tickets.sale();
}
}).start();
new Thread(()->{
for(int i = 0;i<60;i++){
tickets.sale();
}
}).start();
}
}
class Tickets{
private int number = 30;
//synchronized 本质 排队 锁
public synchronized void sale(){
if(number>0){
System.out.println(Thread.currentThread().getName()+"拿走了第"+(number--)+"张"+"还剩"+number);
}
}
}
传统synchronized实现并发
最新推荐文章于 2024-07-22 14:15:06 发布