Wildfly ManagedExecutorService的行为非常不直观,我怀疑行为是一个bug(Wildfly 9,它的 Value ):它产生了 core-size 个线程,然后用它来处理 queue-size 'd队列 . 即使设置了 max-size ,也无法生成其他线程,无论队列中有多少工作 .

也就是说,在队列完全填满之前,此时最多会产生 max-size 个线程,但是因为到那时队列已经满了,新生成的线程通常无法在作业因为最大化而丢失之前将其解除队列 .

正常的执行程序服务往往会产生 max(max-size, available work) 个线程,在其他工作中,如果有额外的工作可用,它们会产生额外的线程,如果没有达到max-size .

但是我无法配置 managed-executor-service 子系统来提供这样的行为(同时仍然有一个作业队列) . 唯一的选择似乎是将core-size设置为max-size,这很愚蠢 . 任何提示?