如何在Java中以快速干净的方式中止线程?

如何在Java中以快速干净的方式中止线程?,第1张

如何在Java中以快速干净的方式中止线程

如某些人所述,尝试使用interrupt()来查看它是否对您的线程有任何影响。如果不是,请尝试破坏或关闭将使线程停止的资源。这比尝试抛出Th​​read.stop()更好。

如果性能是可以忍受的,则可以将每个3D更新视为离散的不间断事件,并让其运行到结论,然后检查是否有新的最新更新要执行。这可能会使GUI变得有些混乱,因为用户将能够进行五处更改,然后查看五处更改之前的图形结果,然后查看其最新更改的结果。但是,根据此过程的时间长短,它可能是可以容忍的,并且可以避免不得不杀死线程。设计可能如下所示:

boolean stopFlag = false;Object[] latestArgs = null;public void run() {  while (!stopFlag) {    if (latestArgs != null) {      Object[] args = latestArgs;      latestArgs = null;      perform3dUpdate(args);    } else {      Thread.sleep(500);    }  }}public void endThread() {  stopFlag = true;}public void updateSettings(Object[] args) {  latestArgs = args;}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5600447.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存