當前位置:編程學習大全網 - 編程語言 - 壹道JAVA編程題 關於用JAVA多線程程序知識編寫避免相同座位號的題目

壹道JAVA編程題 關於用JAVA多線程程序知識編寫避免相同座位號的題目

package ticketseller;

public class TicketSeller {

public static int ticketSum=100;

public static boolean state=true;

public static int cunt=0;

/**

* @param args

*/

public static void main(String[] args) {

TicketSellerMachine mechineOfGuangZhou=new TicketSellerMachine("GuangZhou");

TicketSellerMachine mechineOfShangHai=new TicketSellerMachine("ShangHai");

TicketSellerMachine mechineOfBeiJing=new TicketSellerMachine("BeiJing");

TicketSellerMachine mechineOfShengZheng=new TicketSellerMachine("ShengZheng");

TicketSellerMachine mechineOfHuNan=new TicketSellerMachine("HuNan");

mechineOfGuangZhou.start();

mechineOfShangHai.start();

mechineOfBeiJing.start();

mechineOfShengZheng.start();

mechineOfHuNan.start();

}

public synchronized static void selledTicket(String mechineName){

if(TicketSeller.ticketSum>0){

System.out.println("Ticket("+(++TicketSeller.cunt)+") have been sold in "+mechineName+" mechine.");

TicketSeller.ticketSum--;

}else{

TicketSeller.state=false;

System.out.println("Sorry! Tickets have been sold out...");

}

}

}

class TicketSellerMachine extends Thread{

private String mechineName=this.getName();

public TicketSellerMachine() {

super();

}

public TicketSellerMachine(String mechineName) {

this.mechineName = mechineName;

}

@Override

public void run() {

while(TicketSeller.state){

TicketSeller.selledTicket(this.getMechineName());

try {

Thread.currentThread().sleep(1000);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

public String getMechineName() {

return mechineName;

}

public void setMechineName(String mechineName) {

this.mechineName = mechineName;

}

}

  • 上一篇:高中英語課堂教學設計 運用現代教育技術,,營造開放式數學課堂教學環境
  • 下一篇:男生學習哪些專業最好啊?
  • copyright 2024編程學習大全網