Java中何时真正存在线程?

安妮特

抱歉,不是一个非常专业的问题,但是我是Java和线程编程概念的新手。如果线程是睡眠还是等待中,它是否还活着?在这两种情况下,将返回thread.isAlive()True or False的东西是什么?

乔恩·斯基特

它仍然存在,只是没有运行。

文档中

测试此线程是否仍然存在。如果线程已经启动但尚未死亡,则该线程是活动的。

刚刚处于睡眠或等待状态的线程尚未死亡run正常或突然都未退出其方法),因此isAlive将返回true。

当然,这很容易测试:

public class Test {
    public static void main(String[] args) throws Exception {
        Runnable runnable = new Runnable() {
            @Override public void run() {
                try {
                    Thread.sleep(10000);
                } catch (InterruptedException e) {
                }
            }
        };

        Thread thread = new Thread(runnable);
        thread.start();
        // Give the new thread plenty of time to really start
        Thread.sleep(5000);
        System.out.println(thread.isAlive());
    }        
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章