如何在不导致程序挂起的情况下等待用户输入

时间:2016-04-17 04:17:13

标签: java multithreading user-input

我想知道我可以做些什么来等待多个不同的用户输入关键字,同时允许我的程序的其他部分继续进行,我现在所拥有的是一个只是用Scanner监听的线程,但是我遇到的问题是当我想要多个参数时,可以继续监听,直到程序退出,当调用1个参数时,它停止寻找输入。这是我目前正在处理的代码:

new Thread(() -> {
        String in = scan.nextLine().toLowerCase();
        switch(in) {
            case "kill":
                System.exit(0);
                break;
            case "quote":
                HttpGet req = new HttpGet(BASE_URL + "venues/" + venue + "/stocks" + stock + "/quote");
                req.setHeader(new BasicHeader("X-Starfighter-Authorization", AUTH_KEY));
                try {
                    HttpResponse res = getClient().execute(req);
                    String JSONRes = CharStreams.toString(new InputStreamReader(res.getEntity().getContent()));
                    if(res.getStatusLine().getStatusCode()!=200) {
                        System.out.println(res.getStatusLine().getStatusCode());
                    }else {
                        System.out.println("OK");
                    }
                    System.out.println(JSONRes);
                } catch (IOException e) {
                    e.printStackTrace();
                }
                break;
        }
    }).start();

感谢您对我的问题提供任何帮助!

1 个答案:

答案 0 :(得分:0)

使用while(true)循环,如@ 11thdimension所说。这可能不是最好的解决方案,因为它是一个繁忙的等待循环,但它应该按预期工作。