/**
* 窗口卖票经典实例,第一种继承Thread类多线程进行解决
*
*
* 需求:四个窗口同时卖票。票数100张
*
* 分析:
* 一个有100张票,卖票的动作是四个窗口所使用的,并且是同时进行的,那么就要使用多线程技术。
*
* 怎么创建线程?
* 1.继承Thread类,并且重写run方法。
* 2.将卖票的动作定义到run方法当中。
* */
package com.work.wor01;
class Ticket extends Thread{
private static int num = 100;//声明成静态变量,利用静态数据的共享性,避免卖重票
//private int num = 100;如果不声明成静态变量,那么四个窗口每个窗口都会卖100张票,导致重复卖票。
@Override
public void run() {
while(true){ //因为他要运行多少次是不确定的,具体要看cpu的调用
if(num>0){ //卖票的过程只能是正数,所以在这里放了一个判断
System.out.println(Thread.currentThread().getName()+"...sale"+num--);
}else{
break;
}
}
}
}
public class ThreadTicket {
public static void main(String[] args) {
Ticket t1 = new Ticket();
Ticket t2 = new Ticket();
Ticket t3 = new Ticket();
Ticket t4 = new Ticket();
t1.start();
t2.start();
t3.start();
t4.start();
}
}