gpt4 book ai didi

java - 如何才能停止我正在运行的代码?

转载 作者:行者123 更新时间:2023-12-01 19:15:20 25 4
gpt4 key购买 nike

我在后台运行了很长的操作,例如上传内容、转换图像、音频、视频等。如果用户请求完全停止操作,我想停止/取消它们。

如何实现这一目标?有这方面的设计模式吗?

注意:正在运行的代码有的可以取消,有的则不能。我如何找到一个折衷方案?

编辑:我应该说我希望操作立即停止。

最佳答案

总结并扩展乔恩所说的话:

  • 您应该让线程知道它应该退出循环( volatile 标志)。
  • 如果您希望线程退出阻塞状态,可以interrupt()线程。
  • 您应该在 run 方法中处理 InterruptedException
  • 当你被打扰时,你应该优雅地退出(即完成你正在做的事情并清理干净)。

一些代码:

private volatile bool _running;// volatile guarantees that the flag will not be cached

public void kill(){_running = false;}
public void run()
{
while(_running)
{
try
{
DoWork(); // you may need to synchronize here
}
catch(InterruptedException e)
{
// Handle e
}
}
}

关于java - 如何才能停止我正在运行的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6901212/

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