小编shi*_*ahu的帖子

如何在Java中停止正在运行的Thread

我正在使用基于Java的文件转换工具将PDF转换为DOCX,但有时在转换时它会卡住,如果输入文件大小超过1 MB并开始使用100%CPU和更多内存并继续运行.我想停止这个连续的线程.

  1. 我知道stop()函数已被弃用.
  2. 调用 thread.interrupt();没有帮助,因为线程一直在运行.
  3. 代码中没有循环...因此无法检查循环中的中断标志

如何停止正在运行的线程t.

public class ThreadDemo implements Runnable {

    Thread t;

    PdfToDocConversion objPdfToDocConversion;

    ThreadDemo() throws InterruptedException {

        t = new Thread(this);
        System.out.println("Executing " + t.getName());
        // this will call run() fucntion
        t.start();

        Thread.sleep(2000);

        // interrupt the threads
        if (!t.interrupted()) {
            System.out.println("Interrupted");

            t.interrupt();

        }

        System.out.println(t.isInterrupted()); // true 

        System.out.println(t.getName());

        System.out.println(t.isAlive());   /// still true 

        // block until other threads finish
        try {
            t.join();
        } catch (InterruptedException e) {
        }
    }

    public void run() {

        objPdfToDocConversion = …
Run Code Online (Sandbox Code Playgroud)

java multithreading threadpoolexecutor

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×1

multithreading ×1

threadpoolexecutor ×1