JAVA作业,帮帮忙,很简单

我写的程序:RunnableTest.java:publicclassRunnableTest{inti=0;intj=0;intthefirst=0;//第一个完成线程... 我写的程序:
RunnableTest.java:
public class RunnableTest{
int i=0;
int j=0;
int thefirst=0;//第一个完成线程记录,如果第一线程完成则记录1,若第二线程先完成则记录2
public RunnableTest(){
FirstThread first=new FirstThread();
SecondThread second=new SecondThread();
Thread thread1=new Thread(first);
Thread thread2=new Thread(second);
thread1.start();
thread2.start();
}
class FirstThread implements Runnable{
public void run(){
try{
for(i=1;i<=10;i++)
{
System.out.println("北京"+i);
if((i==10)&&(j!=10)) thefirst=1;//若第一线程先完成,则记录线程一先完成
if((i==10)&&(thefirst==2)) System.out.println("去上海");//判断,若是thefirst=2,且第一线程完成,则输出“去上海”
Thread.sleep((int)(Math.random()*1000));
}
}catch(InterruptedException e){}
}
}
class SecondThread implements Runnable{
public void run(){
try{
for(j=1;j<=10;j++)
{
System.out.println("上海"+j);
if((j==10)&&(i!=10)) thefirst=2;//若第二线程先完成,则记录线程二先完成
if((j==10)&&(thefirst==1)) System.out.println("去北京");//判断,若是thefirst=1,且第二线程完成,则输出“去北京”
Thread.sleep((int)(Math.random()*1000));
}
}catch(InterruptedException e){}
}
}
}

test0.java

public class test0{
public static void main(String args[]){
RunnableTest a=new RunnableTest();
}
}

这个是要求:

随便选择两个城市作为预选旅游目标。实现两个独立的线程分别显示10次城市名,每次显示后休眠一段随机时间(1000毫秒以内),哪个城市先显示完毕,就决定去哪个城市。

问题是:我这个程序运行之后,打印10次可以实现,但是最后“去上海”“去北京”不是每次运行都能打印出来。请帮我改下,谢谢啊~
展开
 我来答
Jseven_jy
2010-06-14 · TA获得超过8122个赞
知道大有可为答主
回答量:2499
采纳率:100%
帮助的人:1114万
展开全部
你那个我昨天晚上弄出来了也。。HI你。。你下了。。HI我把。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式