Java : What happens if a Runnable that is being used in a thread is set to null?

标签 java multithreading runnable

假设我做了以下...

//MyRunnable是我声明的一个类,它实现了Runnable。

MyRunnable r = new MyRunnable();
Thread t = new Thread(r);
t.start();

r = null;

像我在上面的代码片段中那样将 r 设置为 null 有什么含义?

最佳答案

让我用数字向您解释一下:

1-在

MyRunnable r = new MyRunnable();

你正在创建类 MyRunnable 的新实例,它主要实现了 Runnable 接口(interface):

enter image description here

2-在

Thread t = new Thread(r);

您正在创建一个新线程并通过 传递引用 r 指向的对象:

enter image description here

3-在

r = null;

您正在删除 r 引用和 MyRunnable 对象之间的链接,Thread t 正在使用该对象运行线程:

enter image description here

关于Java : What happens if a Runnable that is being used in a thread is set to null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11011666/

相关文章:

java - 使用 2 个线程打印奇数和偶数?

java - 使用 run() 代替 main

Java 线程池执行器

java - 如何实现一个消息发送系统?

java - 未找到使用 JMock 的测试

netbeans 中的 javascript 错误“java.lang.NullPointerException”

java - 为软件分发创建多平台 CD

java - 如果我知道线程名称,如何检查线程在 tomcat 中是否仍然存在?

c# - 如何确保 InvokeRequired 不会中止?

Java volatile 关键字 - 为什么此代码终止