God_zmd
God_zmd
采纳率5.6%
2021-03-05 10:09

for循环中使用线程池,线程池里面的线程用完了for循环会等待嘛?

就像这种

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • qq_37083863 三岁丫 1月前

    和使用的线程池的配置有关系。每种线程池都不一样。

    点赞 评论 复制链接分享
  • weixin_41830716 规则边缘 1月前

    1. ThreadPoolExecutor中有一个BlockingQueue类型的成员变量workQueue,当工作线程不够用时,任务会添加到该队列中,只有当workQueue满了之后,添加任务的线程才会阻塞。

    2. 看newFixedThreadPool(int nThreads)的实现,这个workQueue使用的是new LinkedBlockingQueue() ,生成的LinkedBlockingQueue实例的容量(capacity)是很大的(21亿多),基本不会满。

    3. 综合而言,不会等待。

    点赞 1 评论 复制链接分享

为你推荐