スレッド同期小例:12306チケット予約
960 ワード
package com.whut.study.syn;
public class Happy12306 {
public static void main(String[] args) {
Web12306 c = new Web12306(4,"happy sxt");
//new Thread(c).start();
new Passenger(c," 1",2)//Passenger
.start();
new Passenger(c," 2",1).start();
}
}
//
class Passenger extends Thread{
int seats;
public Passenger(Runnable target,String name,int seats) {
super(target,name);
this.seats = seats;
}
}
//
class Web12306 implements Runnable{
int available; //
String name; //
public Web12306(int available, String name) {
this.available = available;
this.name = name;
}
public void run() {
Passenger p = (Passenger)Thread.currentThread();
boolean flag = this.bookTickets(p.seats);
if(flag) {
System.out.println(" "+Thread.currentThread().getName()+"-available) {
return false;
}
available -=seats;
return true;
}
}