有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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();
        }

是客户。它将在一个无限循环中发送一个对象统计信息。我将实现一种方法,通过输入(例如,按下键盘上的一个按钮)打破这个无限循环。好的,我能做什么?我怎样才能打破一个无限循环


共 (2) 个答案

  1. # 1 楼答案

    您必须在单独的线程上执行这些操作,因为您正在寻找用户输入,所以最好将代码移动到某个异步线程,然后只需在输入时将sendingbool设置为false或中断线程YourThread.interrupt();

  2. # 2 楼答案

    while(sending) 
    { 
        Statistics statsData = setStatisticsData(); 
        ous.writeObject(statsData); 
        Thread.sleep(5000);
        if(EXIT_FLAG == true)
           sending = false;
    }    
    

    EXIT_标志可以是一个静态变量,可以从外部更新。您可能还希望在单独的线程中运行这个无限循环。阅读更多关于如何在线程之间共享数据的信息