isAlive()方法疑问

package com.brianway.learning.java.multithread.communication.example0;

public class IsAlive extends Thread {


@Override

public void run() {

    System.out.println("run---" + this.isAlive());

}

public static void main(String args[]) {

    IsAlive isAlive = new IsAlive();

    Thread thread = new Thread(isAlive);

    System.out.println("begin---" + thread.isAlive());

    thread.start(); //[1]

    thread.run(); //[2]

    isAlive.start(); //[3]

    isAlive.run(); //[4]

    System.out.println("end---" + thread.isAlive());

}

}


如图所示代码,注释[2] [3] [4]步,则打印:

begin---false

end---true

run---false 这个不懂为什么?


如图所示代码,注释[1] [3] [4]步,则打印:

begin---false

run---false 这个难道是随机的么?可能为true,也可能为false

end---false


如图所示代码,注释[1] [2] [4]步,则打印:这种情况比较好理解

begin---false

end---false

run---true


如图所示代码,注释[1] [2] [3]步,则打印:

begin---false

run---false 为什么使用isAlive.run()的时候,是false呢?

end---false


动漫人物
浏览 346回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java