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次可以实现,但是最后“去上海”“去北京”不是每次运行都能打印出来。请帮我改下,谢谢啊~ 展开
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次可以实现,但是最后“去上海”“去北京”不是每次运行都能打印出来。请帮我改下,谢谢啊~ 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询