安卓 - 线程会自动停止吗?

3

我一直在寻找答案,但没有找到。我知道手动停止线程是好的实践,但是如果我忘记停止它们会发生什么呢?如果我创建一个新线程并让它运行某个任务,当任务完成后线程会发生什么?例如,在这种情况下线程会怎样:

Thread t = new Thread(new Runnable(){

        public void run() {
            for (int i = 0;i<10;i++){
                foo;
            }
        }
    });
t.start();

线程 t 会自动停止吗,还是只会不断消耗资源,或者会做其他事情?

3个回答

5
线程将在run方法的末尾完成时停止。在您的示例中,这将在for循环执行10次后完成,假设foo未被阻塞。如果没有对此线程的更多引用,则JVM将对其进行垃圾收集。

谢谢你的回答。在我告诉线程运行后,我从来不确定它正在发生什么,你的答案让事情变得更加清晰了一些。 - Travis Frazier

2

run() 方法执行完成后,线程将结束,是的。如果您这么想,stop() 一个线程并不是一个好的做法。


0
如果不是一个守护进程,任务完成后就不会占用所有的资源。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接