多线程小题 —— 设计火车票模拟程序
题目 : 设计多线程程序:设计火车票模拟程序,假设火车站有100张票,6个售票窗口同时售票,用6个线程模拟6个窗口售票情况。要求打印:窗口 n (窗口编号 1~6 )出售车票编号 m( 1 ~ 100 )成功。
代码:
import java.util.Random;
public class Ticket implements Runnable{
static int num;
static int count;
Ticket(){
num = 100;
count = 0;
}
@Override
public void run() {
synchronized (this) {
while(num > 0){
try{
Thread.sleep(new Random().nextInt(20));
}catch(Exception e){
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()+"_____"+num);
num --;
count ++;
}
}
}
public static void main(String[] args){
Ticket ticket = new Ticket();
for(int line = 1 ; line <= 6; line ++){
new Thread(ticket,""+line).start();
}
}
}
结果: