Lavichord 2018-02-11 14:36 采纳率: 0%
浏览 3497
已结题

newFixedThreadPool例子无法运行求解

@Test
public void test1() {
    ExecutorService fixedThreadPool = Executors.newFixedThreadPool(3);
    for (int i = 0; i < 10; i++) {
        final int index = i;
        fixedThreadPool.execute(new Runnable() {

            @Override
            public void run() {
                try {
                    System.out.println(index);
                    Thread.sleep(2000);
                } catch (Exception e) {
                    e.printStackTrace();
                } 
            }
        });
    }
}

以上是我在别的博客找到的例子,但是这个例子无法实现“每2秒打印3个数字”这个效果。前三个线程被执行,但是后面加入的都不行。for并没有被阻塞。

  • 写回答

11条回答 默认 最新

  • q515104037 2018-10-31 19:51
    关注

    非main函数下,你的测试函数的主线程,不会等待线程池中的其他线程结束,就结束线程了!你改成主函数就正常了,改成被主函数调用也正常了。也可以在测试函数的for循环外增加等待时间,或者增加判断所以线程是否完全结束。

    评论

报告相同问题?

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题