2020.7.30
2021-09-07 08:51
采纳率: 100%
浏览 49
已结题

java 多线程任务停不下来


class loops//不知道为什么,停不下来
{
    static class LOOP implements Callable<Integer>
    {
        int c;
        LOOP(int c)
        {
            this.c=c;
        }

        int n=0;
        public Integer  call()
        {
            for(int i=0;i<100000;i++)
                n=i;
            return n;
        }
    }
    public static void main(String[] args) throws Exception
    {
        ExecutorService exec=Executors.newCachedThreadPool();
        List<Future<Integer>> fc=new ArrayList<Future<Integer>>();
        for(int i=0;i<10;i++)
        {
            fc.add(exec.submit(new LOOP(i)));
        }
        for(Future<Integer > gc:fc)
        {
            System.out.println(gc.get());
        }

    }

}

运行程序后,停不下来

  • 好问题 提建议
  • 收藏

5条回答 默认 最新

  • 曦陽惜夏 2021-09-07 09:56
    已采纳

    exec 线程池是需要关闭的,如果不关闭,即使添加的线程都执行完,且会有一个线程一直等待状态,自然就不会关闭,需要手动关闭exec.shutdown();

    评论
    解决 无用
    打赏 举报
  • 查看更多回答(4条)

相关推荐 更多相似问题