class Res
{
String name;
String sex;
}
class Input implements Runnable
{
private Res r;//这句是什么意思?跟Res r = new Res();有什么区别?
Input(Res r)
{
this.r=r;
}
public void run()
{
int x = 0;
while(true)
{
if(x==0)
{
r.name="mike";
r.sex="man";
}
else
{
r.name="丽丽";
r.sex="女女";
}
x=(x+1)%2;
}
}
}
class Output implements Runnable
{
private Res r;
Output(Res r)
{
this.r=r;
}
public void run()
{
while(true)
{
System.out.println(r.name+"-------"+r.sex);
}
}
}
class InputOutputDemo
{
public static void main(String[] args)
{
Res r=new Res();
Input in=new Input(r);
Output out=new Output(r);
Thread t1=new Thread(in);
Thread t2=new Thread(out);
t1.start();
t2.start();
}
}
执行结果是什么?为什么是那样?
线程t2输出的为什么是t1处理后的r?
java多线程问题,请教大神,多谢
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
关注 private Res r;//这是在类中定义类的成员变量,而没有赋初始值,而你后面那句是对成员变量初始化。如果写成下面:
private Res r = new Res();
也是定义成员变量,但是定义的时候就给赋值了初值了。
你这段代码执行while(true)中没有break,所以是死循环,交替输出:mike-------man mike-------女女 丽丽-------女女 丽丽-------女女 丽丽-------man mike-------man mike-------女女 mike-------man 丽丽-------man mike-------女女
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥30 类鸟群Boids——仿真鸟群避障的相关问题
- ¥15 CFEDEM自带算例错误,如何解决?
- ¥15 有没有会使用flac3d软件的家人
- ¥20 360摄像头无法解绑使用,请教解绑当前账号绑定问题,
- ¥15 docker实践项目
- ¥15 数电几道习题,写出作答过程,ai一律不采用
- ¥15 利用pthon计算薄膜结构的光导纳
- ¥15 海康hlss视频流怎么播放
- ¥15 Paddleocr:out of memory error on GPU
- ¥30 51单片机C语言数码管驱动单片机为AT89C52