1

该线程何时停止运行并停止存在?打印数字后会立即停止运行10吗?打印后是否可以立即进行垃圾收集10?或者我必须明确中断它还是什么?

Runnable counter = new Runnable() {
  @Override
  public void run() {
    for (int i =0; i<=10; i++) {
      System.out.println(i);
    }
  }
};
new Thread(counter).start();
4

1 回答 1

3

线程不会自杀。它只是终止或中止(例如,被杀死)。

有一个重要因素可以证明对进程和线程使用如此残酷的术语 kill 是合理的它们的状态不会被保存,并且除非您有其他机制,否则无法直接保证事务完整性。

在您的情况下,线程将简单地从 1 打印到 10 并终止,在下次 GC 运行时被丢弃。

而已。

于 2013-05-02T21:14:44.113 回答