【发布时间】:2017-02-13 13:17:05
【问题描述】:
我正在创建的程序需要一个线程对象数组。更具体地说,我有一个扩展 Thread 的类。我这样做是为了让创建的每个新对象都在自己的线程上运行。如果我想杀死线程并将其从数组元素中删除,以便我可以在该空间中创建一个新的 Thread 对象,我该怎么做?这是我的想法。
我了解删除对线程的引用实际上不会停止线程。为此,我首先需要中断线程。要从数组中删除线程对象,我可以简单地将其设为空吗?即:
array[i].interrupt();
array[i] = null;
然后我就可以在那个空间中创建一个新线程了吗?
array[i] = new Thread();
假设 Thread 对象的 run 方法正确处理中断等
【问题讨论】:
-
是什么阻止你尝试?打断不等于停下来。
-
这应该可以,但是为了确保线程在创建新线程之前停止,您可以在将元素设置为 null 之前执行 array[i].join()。
-
你能分享你的需求吗,为什么你需要一个线程对象数组?
-
@MauricePerry OP 将在
Thread上调用interrupt。 -
@CKing 是的.....
标签: java multithreading java-threads