java吧 关注:1,245,827贴子:12,721,302
  • 2回复贴,共1

求讲解…… 通过了,,但是什么都没有输出,,怎么回事啊……

只看楼主收藏回复

public class Example {
public static void main(String[] args){
String s1="售票者",s2="买票者";
TicketOffice ticketoffice=new TicketOffice(s1,s2);
Thread sell,buy;
sell=new Thread(ticketoffice);
buy=new Thread(ticketoffice);
sell.setName(s1);
buy.setName(s2);
sell.start();
buy.start();
}
}
class TicketOffice implements Runnable{
TicketSeller sell;
String s1,s2; //有改动
TicketOffice(String s1,String s2){
sell=new TicketSeller();
this.s1=s1; //有改动
this.s2=s2;
} public void run(){
if(Thread.currentThread().getName().equals(s1)){
sell.sellTicket(s1);
}
else if(Thread.currentThread().getName().equals(s2)){
sell.sellTicket(s2);
}
}
}
class TicketSeller{
int number=0;
public synchronized void sellTicket(String s){
boolean flag=false;
for(int i=0;i<10;i++){
if(flag=false){
number+=1;
System.out.printf("售票员售出%d号票.\n",number);
flag=true;
}
else if(flag){
System.out.printf("买票者买到%d号票.\n",number);
flag=false;
}
}
}
}


1楼2012-11-24 17:54回复
    if(flag=false){
    改成
    if (flag == false) {


    IP属地:浙江2楼2012-11-24 18:05
    收起回复