多线程小题 —— 设计火车票模拟程序

题目 : 设计多线程程序:设计火车票模拟程序,假设火车站有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();
  }
 }
}

结果
多线程小题 —— 设计火车票模拟程序