gpt4 book ai didi

Java Thread.stop() 与 Thread.interrupt()

转载 作者:太空狗 更新时间:2023-10-29 22:32:26 25 4
gpt4 key购买 nike

我有以下代码:

renderThread = new Thread(new Runnable() {

@Override
public void run() {
for (int i = 0; i < 10000000; i++) {
System.out.println("Number: " + i);
}
}
});

renderThread.start();

try {
Thread.sleep(100);
} catch (InterruptedException ex) {
ex.printStackTrace();
}

renderThread.interrupt(); //It should stop, but it does not stop.

renderThread.interrupt() 不会中断线程,它会继续运行。如果我用 .stop() 替换 renderThread.interrupt(),线程就会停止。但是,不推荐使用 .stop()。那么,如果 stop 被弃用并且 interrupt 不起作用,停止线程的正确方法是什么?

最佳答案

当您调用 interrupt() 时,它会触发一个 boolean 标志,告诉运行函数它应该停止。这就是为什么我通常这样编写我的运行函数。

void run()
{
while(!Thread.interrupted())
{
//Do something
}
}

仅仅因为您调用中断并不意味着线程会立即停止或根本不会停止。这取决于运行函数中的内容。

关于Java Thread.stop() 与 Thread.interrupt(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20527893/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com