Una pregunta de programación JAVA sobre el uso del conocimiento de programación multiproceso JAVA para escribir una pregunta para evitar el mismo número de asiento
paquete ticketeller;
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();
}
vacío estático sincronizado público soldTicket(String mechineName){
if( TicketSeller.ticketSumgt; 0){
System.out.println("Ticket(" (TicketSeller.cunt) ") se han vendido en " mechineName " mechine.");
TicketSeller.ticketSum--;
}else{
TicketSeller.state=false;
System.out.println("¡Lo sentimos! Las entradas se han agotado ...");
}
}
}
clase TicketSellerMachine extiende Thread{
privado Cadena nombre de la máquina = this.ge
tName();
public TicketSellerMachine() {
super();
}
public TicketSellerMachine(String mechineName) {
this.mechineName = mechineName;
}
@Override
public void run() {
while (TicketSeller.state){
TicketSeller.selledTicket(this.getMechineName());
prueba {
Thread.currentThread().sleep(1000) ;
} catch (InterruptedException e) {
e.printStackTrace()
}
}
}
public String getMechineName() {
return mechineName;
}
public void setMechineName(String mechineName) { p>
p>
this.mechineName = mechineName;
}
}