gpt4 book ai didi

java - Java中线程退出时,可运行类的实例是否会被销毁

转载 作者:行者123 更新时间:2023-12-01 18:47:47 25 4
gpt4 key购买 nike

如果有一个类使用以下代码实现可运行类:

public class MyRunnable implements Runnable {
public Thread t;
// Other variables;

public MyRunnable() {
t = new Thread(this, "MyRunnable Thread");
// Initialise other variables.
}

public void run() {
//Do something.
}
}

我正在通过以下方式创建上述类的实例:

public class MyFunc () {
satic void main (String ards[]) {
MyRunnable mr = new MyRunnable();
mr.t.start();


while (true) {
Thread.sleep(10000);
if (!mr.isAlive()) {
//Execute mr again.
// How to do it ?
}
}
}
}

我该怎么做?

我想到了两种方法,但不确定哪一种是正确的:

1. mr.t.start();

2. MyRunnable mr = new MyRunnable(); mr.t.start();

我应该创建一个 mr 的新实例吗?

或者我应该使用现有实例还是先生?

最佳答案

MyRunnable 中删除对 Thread 的引用。

Java 中启动线程的习惯用法如下

new Thread(new MyRunnable()).start()

垃圾收集的正常规则适用于清理可运行对象。如果没有对象引用 runnable,它可能会被垃圾收集。

关于java - Java中线程退出时,可运行类的实例是否会被销毁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16981190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com