java如何打破无限循环
这是我的一段代码:
// TODO Auto-generated method stub
try
{
Socket clientSocket = new Socket("localhost", 8888);
ObjectOutputStream ous = new ObjectOutputStream(clientSocket.getOutputStream());
while(sending)
{
Statistics statsData = setStatisticsData();
ous.writeObject(statsData);
Thread.sleep(5000);
}
}
catch(UnknownHostException uhe)
{
uhe.printStackTrace();
}
catch(IOException ioe)
{
ioe.printStackTrace();
}
catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
是客户。它将在一个无限循环中发送一个对象统计信息。我将实现一种方法,通过输入(例如,按下键盘上的一个按钮)打破这个无限循环。好的,我能做什么?我怎样才能打破一个无限循环
# 1 楼答案
您必须在单独的线程上执行这些操作,因为您正在寻找用户输入,所以最好将代码移动到某个异步线程,然后只需在输入时将
sending
bool设置为false或中断线程YourThread.interrupt();
# 2 楼答案
EXIT_标志可以是一个静态变量,可以从外部更新。您可能还希望在单独的线程中运行这个无限循环。阅读更多关于如何在线程之间共享数据的信息