【发布时间】:2021-04-05 23:05:48
【问题描述】:
我想创建一个线程来判断用户代码:
FutureTask<Integer> futureTask = new FutureTask(() -> run(type)); // run is a method
Thread thread = new Thread(futureTask);
thread.start();
众所周知,用户代码中可能会写死循环,所以run方法会一直工作,而线程thread不会停止。我想在超时时间后终止这个thread。我怎样才能终止它而不是使用Thread.stop,因为它不安全?
【问题讨论】:
-
使用进程怎么样?如果你使用一个线程,它可能非常不安全,因为你的线程和用户的线程在同一个地址空间中。
-
我正在考虑,因为如果我使用一个进程,我需要更改很多代码。
标签: java multithreading terminate