62,612
社区成员
发帖
与我相关
我的任务
分享
public class Test implements Runnable {
private static int totalTicketNumber=1000;//总票数
public void run() {
try {
int i=(int) (Math.random()*10+1);//随机产生购买的张数(1到10)
System.out.println(Thread.currentThread().getName()+", 读取到的总票数:"+ totalTicketNumber+"张,准备购买 "+i+" 张");//(1)
Thread.sleep(3000);
//修改总票数
totalTicketNumber = totalTicketNumber - i;//(2)
System.out.println(Thread.currentThread().getName()+",剩余总票数: "+totalTicketNumber+" 张");//(3)
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws InterruptedException {
Test target=new Test();
for (int i = 1; i <= 5; i++) {
Thread t=new Thread(target,"线程"+i);
t.start();
}
}
}
//运行结果:
线程1, 读取到的总票数:1000张,准备购买 5 张
线程2, 读取到的总票数:1000张,准备购买 3 张
线程4, 读取到的总票数:1000张,准备购买 1 张
线程5, 读取到的总票数:1000张,准备购买 7 张
线程3, 读取到的总票数:1000张,准备购买 10 张
线程4,剩余总票数: 994 张
线程3,剩余总票数: 977 张
线程2,剩余总票数: 994 张
线程5,剩余总票数: 987 张
线程1,剩余总票数: 994 张