gpt4 book ai didi

java - 如何在finally block 中停止带有无限循环的线程

转载 作者:行者123 更新时间:2023-12-02 05:23:01 27 4
gpt4 key购买 nike

抱歉我的英语不好。

我有一个带有方法的线程:

  @Override
public void run()
{
try
{
System.out.println( "Hello world" );
Thread.sleep( 10 );
}
catch( InterruptedException e )
{
e.printStackTrace();
}
finally
{
while( true )
System.out.println( "FINALLYYY" );
}
}

我建议,这个线程永远不能停止!在调用中断或停止方法后 - 在finally block 中线程将开始无限循环。

如何强制线程停止?

最佳答案

线程停止和中断方法并不是解决这个问题的最佳方法。将 boolean 变量添加到您的线程并在 while 语句中检查它。

例如:

  private volatile boolean keepGoing = true;

public void stopTheThread() {
keepGoing = false;
}

@Override
public void run()
{
try
{
System.out.println( "Hello world" );
Thread.sleep( 10 );
}
catch( InterruptedException e )
{
e.printStackTrace();
}
finally
{
while( keepGoing )
System.out.println( "FINALLYYY" );
}
}

关于java - 如何在finally block 中停止带有无限循环的线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26337742/

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