fixedthreadpool java_了解Java FixedThreadPool

我试图了解Java FixedThreadPool在实践中的工作原理,但文档不回答我的问题。

假设一个简单的场景,如:

ExecutorService ES= Executors.newFixedThreadPool(3);

List FL;

for(int i=1;i<=200;i++){

FL.add(ES.submit(new Task()));

}

ES.shutdown();

其中Task是一个Callable,它构造一些资源,使用它们,并返回一些输出。

我的问题:在完成for循环时有多少任务在内存中?换句话说:一次建一个资源的时候只有3个任务,还是全部都是先创建的,这样在提交之后,我有200个任务(和他们的资源)等待执行?

注意:资源构造发生在Task的构造函数中,而不是在call()方法中。

在javadoc中(可以随意跳过以下内容):令我困惑的是Java文档中的以下说明

Creates a thread pool that reuses a fixed number of threads operating

off a shared unbounded queue. At any point, at most nThreads threads

will be active processing tasks.

我想这意味着,在我的例子中,所有的200任务都在队列中,但只有3个被执行。

任何帮助是非常感谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值