一道java代码,麻烦大神们帮我看看问题出在哪里(为何线程r1输出的内容为何总是0而不是累加得到的结果)
classnumextendsThread{publicints;publicvoidrun(){inti;for(i=1;i<=199;i++){try{sleep(1...
class num extends Thread{
public int s;
public void run()
{
int i;
for(i=1;i<=199;i++)
{
try{
sleep(100);
}
catch(InterruptedException e){
}
s=s+i*(i+1);
System.out.println(s);
}
}
}
class reading extends Thread{
public void run(int s)
{int i;
for(i=0;i<20;i++)
{
try{
sleep(1000);
}
catch(InterruptedException e){
}
System.out.println(s);
}
}
}
public class main {
num n1=new num();
reading r1=new reading();
n1.start();
r1.start();
r1.run(n1.s);
}
} 展开
public int s;
public void run()
{
int i;
for(i=1;i<=199;i++)
{
try{
sleep(100);
}
catch(InterruptedException e){
}
s=s+i*(i+1);
System.out.println(s);
}
}
}
class reading extends Thread{
public void run(int s)
{int i;
for(i=0;i<20;i++)
{
try{
sleep(1000);
}
catch(InterruptedException e){
}
System.out.println(s);
}
}
}
public class main {
num n1=new num();
reading r1=new reading();
n1.start();
r1.start();
r1.run(n1.s);
}
} 展开
1个回答
2015-11-23
展开全部
没看懂你在写啥,reading的run方法你怎么加多了个参数int ,这样的写可以吗,你是要实现在reading线程中输出num线程中的s值吗?
更多追问追答
追问
对,但是输出总是0,我不知道问题出在哪里,我用eclipse的 时候他的确是有run()的带参方法,或者除了这种做法之外还有其他做法说一下也行,不过我很想知道问题到底在哪里
追答
你传的n1.s方式不对,按你调用run(n1.s)这方式来看,那个s值在进入run方法赋值给方法参数s后,那s就跟n1.s没关了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询