由于java是单继承,很多时候为了实现多线程 通过继承 Thread 类后,就不能再继承其他类了。为了方便可以通过实现 Runnable 接口来实现,和Tread 类似需要重写run 方法。
下面通过模拟12306 黄牛抢票来简单应用:
public class Web12306 implements Runnable{
//票数
private int ticketNums = 99;
@Override
public void run() {
while(true) {
if(ticketNums<0) {
break;
}
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()+"-->"+ticketNums--);
}
}
public static void main(String[] args) {
//一份资源
Web12306 web =new Web12306();
System.out.println(Thread.currentThread().getName());
//多个代理
new Thread(web,"黄牛甲").start();
new Thread(web,"码农").start();
new Thread(web,"黄牛乙").start();;
}
}