Java 线程终止引用

标签 java multithreading reference terminate

为什么不能通过将线程的引用设置为 null 并让垃圾收集器删除它来终止线程?它和其他对象一样,不是吗?

示例:


Thread t = new Thread(new Runnable() {
  public void run() {
    //...
  } 
}).start;

t = null;

最佳答案

It's an object like any other, isn't it?

不,不是。它代表一个非内存资源。您是否希望一个文件被删除,因为代表它的对象被垃圾回收了?

事实上,当谈到垃圾回收时,Thread 对象非常不“像任何其他”对象,因为线程本身就是可达性树,因此表示正在运行的线程的 Thread 对象的字段(或堆栈上的局部变量)引用的任何对象都根据定义不符合垃圾回收条件。

关于Java 线程终止引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5763233/

相关文章:

C# 匿名方法不会运行。未设置对象引用

java - 类转换异常按钮无法转换为 Adview

java - 将参数解析到 Java 命令行程序

c# - 允许多个线程访问图像

c++ - 如何中断 libfcgi 中的 Accept 方法?

c++ - OpenCV C++多线程提高帧率

arrays - 为什么 pipe equals 不适用于 Ruby 中的 tap?

c# - Unity - Vector3 结构 - 通过引用传递值类型

java - 如何解决 No bean named 'springSecurityFilterChain' available

java - Vertx 的路由器问题