public class Test17 {
/*
* 2.有100个限量版的水杯,但是只能通过实体店和
*
* 官网才能进行购买,并且分别统计卖了多少。请
*
* 用线程进行模拟并设置线程名称用来代表售出途
*
* 径,再将信息打印出来。 比如(实体店卖出第1个,总共剩余n
*
* 个..)
*/
public static void main(String[] args) {
glass g = new glass();
new Thread(g, "实体店").start();
new Thread(g, "官网").start();
}
}
class glass implements Runnable {
// 定义卖出的数量跟剩余的数量
private int glass = 1;
private int number = 100;
//定义实体店跟官网卖出去的数量统计
private int count1 = 0;
private int count2 = 0;
//重写run方法
public void run() {
//将调用的名字放入到变量中
String name = Thread.currentThread().getName();
while (true) {
synchronized (this) {
//当杯子卖出的数量大于100个跳出循环
if (glass > 100)
break;
//判断是否是当中的一个线程。并将其输出
if ("实体店".equals(name)) {
//输出杯子卖出去++ 总个数--,并且店铺统计++
System.out.println(name + "卖出第" + glass++ + "个,总共剩余"
+ --number + "个");
count1++;
} else {
System.out.println(name + "卖出第" + glass++ + "个,总共剩余"
+ --number + "个");
count2++;
}
}
}
//将店铺卖出的统计输出
if ("实体店".equals(name)) {
System.out.println(name + "卖了" + count1 + "个");
} else {
System.out.println(name + "卖了" + count2 + "个");
}
}
}
|
|