线程 - 为何这样写JAVA的Scanner没有等待我输入?
PHP中文网
PHP中文网 2017-04-17 17:22:50
[Java讨论组]

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

这是线程类:→

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

}
PHP中文网
PHP中文网

认证0级讲师

全部回复(2)
ringa_lee

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

伊谢尔伦
values = sc.toString(); //你的脑洞有点大

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

values = scanner.next(); 
// 或
values = scanner.nextLine();
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号