网购抢票,黄牛只能抢一张
package com.homework.shopticket;
public class Shop implements Runnable {
private String name;
//抢的票
private int num = 0;
//总票数
private int count = 10;
//记录是否买完
private boolean flag = false;
int k=1;
public Shop() {
}
public Shop(String name) {
this.name = name;
}
public synchronized void tickets() {
if (count <= 0) {
flag = true;
return;
}
//如果黄牛党抢票,就退出循环
/* if ((Thread.currentThread().getName().equals("黄牛党"))&&(k!=1)) {
k++;
return;
}
if (Thread.currentThread().getName().equals("黄牛党")) {
k++;
}*/
count--;
num++;
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
// System.out.println("name"+Thread.currentThread().getName());
System.out.println(Thread.currentThread().getName() + "抢到了第" + num +
"张票,剩余" + count + "张票!");
}
@Override
public void run() {
while (!flag) {
tickets();
//如果黄牛党抢票,就退出循环
if (Thread.currentThread().getName().equals("黄牛党")) {
break;
}
}
}
}
*************************************************
package com.homework.shopticket;
public class Test {
public static void main(String[]args){
Shop shop=new Shop();
Thread th1=new Thread(shop,"桃跑跑");
Thread th2=new Thread(shop,"张票票");
Thread th3=new Thread(shop,"黄牛党");
th1.start();
th2.start();
th3.start();
}
}
术到极致,几近于道。
有道无术,可以求术;
有术无道,止于术矣。