为何这样写JAVA的Scanner没有等待我输入?

发布于 2022-09-02 10:33:36 字数 877 浏览 16 评论 0

写了如下代码:但是启动的时候完全没有让我输入直接死循环.请问如何解决?

这是线程类:→

public class MultiThread implements Runnable
{
    private volatile String values;
    private volatile int swich;
    private static final String CLOSE = "close";
    
    @Override
    public void run()
    {
    while (swich < 1)
    {
        Scanner sc = new Scanner(System.in);
        values = sc.toString();
        if(values.equals(CLOSE)){
        System.out.println("close this thread!");
        swich = 1;
        continue;
        }
        System.out.println("input's :" + values);
    }
    }   
}

这是运行类:→

public class ExecutorServiceSim
{

    public static void main(String[] args)
    {
    
    int nThreads = 4;
    ExecutorService es = Executors.newFixedThreadPool(nThreads);
    es.submit(new MultiThread());
    es.shutdown();
    }

}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

锦上情书 2022-09-09 10:33:36

好吧,我没好好看代码,听楼下的吧,我的那个答案是错的

像你 2022-09-09 10:33:36
values = sc.toString(); //你的脑洞有点大

↓↓↓↓↓↓↓↓↓↓↓↓↓↓

values = scanner.next(); 
// 或
values = scanner.nextLine();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文