线程连接(毫秒)不会在Java中杀死线程

时间:2018-02-05 03:32:55

标签: java multithreading timeout java-threads

我正在尝试使用Thread.join(millis)超时正在运行的Thread,但它只是挂起并且不会超时。可能是什么原因造成的?示例代码

public static void main(String[] args) throws InterruptedException {
    final Thread t1 = new Thread(() -> {
        for (int i = 0; i < 100000000000000000L; i++) {
        }
    });
    t1.start();
    t1.join(100);
    System.out.println("t1.join called");
}

1 个答案:

答案 0 :(得分:1)

  

线程连接(毫秒)没有在Java中杀死线程

这并不意味着杀死线程。它意味着等待它退出到超时值,然后在超时到期时将InterruptedException抛给当前线程。见Javadoc。