一道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);

}

}
展开
 我来答
匿名用户
2015-11-23
展开全部
没看懂你在写啥,reading的run方法你怎么加多了个参数int ,这样的写可以吗,你是要实现在reading线程中输出num线程中的s值吗?
更多追问追答
追问
对,但是输出总是0,我不知道问题出在哪里,我用eclipse的 时候他的确是有run()的带参方法,或者除了这种做法之外还有其他做法说一下也行,不过我很想知道问题到底在哪里
追答
你传的n1.s方式不对,按你调用run(n1.s)这方式来看,那个s值在进入run方法赋值给方法参数s后,那s就跟n1.s没关了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式