package Calculator;
public class Ticket {
double ticket;
public Ticket(double d) {
ticket=d;
}
public double getTicket() {
return ticket;
}
public void setTicket(double ticket) {
this.ticket = ticket;
}
}
//新建一个
package Calculator;
public class TicketThread extends Thread{
Ticket ticket;
public TicketThread(TicketThread m[],Ticket at,String sName) {
super(sName);
ticket=at;
}
@Override
public void run() {
synchronized (ticket) {
if(ticket.getTicket()>0) {
try {
Thread.sleep(300);
ticket.setTicket(ticket.getTicket()-1);//取票
System.out.println(this.getName()+"成功取得:"+1+"张票");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else {
System.out.println(this.getName()+"取票失败");
}
}
}
}
//再新建一个
package Calculator;
public class Test {
public static void main(String[] args) {
Ticket at=new Ticket(20);
String s[]= {"张一","张二","张三","张四","张五","张六","张七","张八","张九","张十",
"王一","王二","王三","王四","王五","王六","王七","王八","王九","王十",
"李一","李二","李三","李四","李五","李六","李七","李八","李九","李十"};
//TicketThread thd[]=new TicketThread[30];
TicketThread[] m = null;
for(int i=0;i<30;i++)
{
TicketThread thd=new TicketThread(m,at,s[i]);
thd.start();
}
}
}
实现结果如下: