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

标签 java multithreading timeout java-threads

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

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");
}

最佳答案

Thread join(milliseconds) not killing thread in Java

这并不是要杀死线程。它的意思是等待它退出到超时值,然后如果超时到期,则将 InterruptedException 抛给 current 线程。请参阅 Javadoc。

关于java - 线程连接(毫秒)不会在 Java 中杀死线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48615523/

相关文章:

java - 静态全局对象

java - 将 SOAP 转换为虚拟 Restful 服务?

c++ - 如何在 C++ 中处理线程安全的回调注册和执行?

java - Scala 在线程中对待 "sharing"局部变量的方式与 Java 不同?它是如何工作的?

heroku - 在 psycopg2 中设置事务\查询超时?

java - 在目录 Java 的文本文件列表中查找字符串 ..想要找到行号。

multithreading - coldfusion 11后台处理程序和cfmail线程

PHPUnit 严格模式 - 如何更改默认超时

PHP Sessions 过期时间 - 在特定的分钟/小时/天数内保持 session 有效

java - opencsv,不能将值与“