Java - 循环,同时保持另一个代码运行

时间:2011-10-17 02:23:57

标签: java input

我不知道如何做到这一点。我想有一个计时器,可以永远保持循环,但是当循环运行时,我希望能够运行扫描程序并等待用户输入。基本上就像聊天一样。在循环不断检查发布的任何新消息但循环运行时,用户仍然可以提交消息。

我该怎么做?

此外,我还没有设置GUI。这都是在一个简单的命令提示符下运行(如果重要的话)。

4 个答案:

答案 0 :(得分:3)

答案 1 :(得分:1)

你可以使用多线程应用程序,但在我看来,它会比你想要的更复杂。

: 尝试定义一个计时器,并为其添加一个timertask,然后在循环中接收输入:

    Scanner scan = new Scanner(System.in);
    Timer timer = new Timer();
    timer.schedule(new TimerTask() {

        @Override
        public void run() {
            //Do whatever you want with your messages here
        }
    }, 0, 1000);

    //Wait for user input
    while(true) {
        String bar = scan.next();
    }

答案 2 :(得分:0)

您可以运行正在等待输入的线程。输入输入后,主程序可以调用线程中的方法,然后可以决定是终止循环还是继续运行。

答案 3 :(得分:0)

嗯,听起来很早,但你可以做多个Threads,或者你可以让你的循环在来自用户的新消息之间来回反弹,并检查是否有新的东西发布。

如果您正在从InputStream(或其中一个子类)中进行阅读,则可以调用available方法检查并查看可用字节数是否为> 0(如果有任何内容可以从其他聊天参与者或用户输入中读取)。

所以,循环:

  • if(newMessages)...发布新消息......
  • if(newUserChat)...发送新消息......

这基本上就是它的所有内容。