Ok, thanks for explaining this... I think :)

I had a read of the ThreadPoolExecutor javadoc. It seems to me that 
core-pool-size should be described as the maximum pool size before queuing. 
Describing it as the minimum pool size is misleading because there is no 
minimum. The number of threads in the pool before any have been invoked is 
always zero.

Tim

On 1 Jul 2014, at 16:25, Lance Java <lance.j...@googlemail.com> wrote:

> If you read the javadoc for java.util.concurrent ThreadPoolExecutor you'll
> see that the number of threads will only increase when the queue has
> reached its capacity. Crazy / stupid behaviour if you ask me... But
> expected.
> 
> I've been caught out by this before when I set core pool size to 1,
> expecting the thread size to increase under load.
> On 1 Jul 2014 02:53, "D Tim Cummings" <t...@triptera.com.au> wrote:
> 
>> Hi
>> 
>> I am using Tapestry 5.3.7 and the ParallelExecutor. When I increase the
>> max-pool-size I am not able to use any more threads. However when I
>> increase the core-pool-size I am able to use more threads. It looks like
>> the max-pool-size is not doing anything (or I am not understanding what it
>> is supposed to do).
>> 
>> When I use the defaults I get a maximum of 3 threads and other threads
>> seem to wait in a queue and execute later.
>> 
>> When I use the following settings in web.xml I still get only 3 threads
>> 
>> <context-param>
>>  <param-name>tapestry.thread-pool.core-pool-size </param-name>
>>  <param-value>3</param-value>
>> </context-param>
>> <context-param>
>>  <param-name>tapestry.thread-pool.max-pool-size</param-name>
>>  <param-value>20</param-value>
>> </context-param>
>> 
>> When I use the following settings in web.xml I get 3 threads
>> 
>> <context-param>
>>  <param-name>tapestry.thread-pool.core-pool-size </param-name>
>>  <param-value>3</param-value>
>> </context-param>
>> <context-param>
>>  <param-name>tapestry.thread-pool.max-pool-size</param-name>
>>  <param-value>200</param-value>
>> </context-param>
>> 
>> When I use the following settings in web.xml I get 20 threads
>> 
>> <context-param>
>>  <param-name>tapestry.thread-pool.core-pool-size </param-name>
>>  <param-value>20</param-value>
>> </context-param>
>> <context-param>
>>  <param-name>tapestry.thread-pool.max-pool-size</param-name>
>>  <param-value>20</param-value>
>> </context-param>
>> 
>> I noticed that the documentation says the default max-pool-size is 20 (
>> http://tapestry.apache.org/parallel-execution.html ) while the API docs
>> say the default is 10 (
>> http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/IOCSymbols.html
>> ).
>> 
>> I am invoking my threads from a service which contains
>> 
>>  @Inject
>>  private ParallelExecutor executor;
>> 
>>  @Override
>>  public void doStartThread() {
>>    if ( myFuture == null || myFuture.isDone() ) {
>>      myFuture = executor.invoke(new MyInvokable());
>>    }
>>  }
>> 
>> I have tried in Jetty 8.1.2 (Run Jetty Run in Eclipse) and Tomcat 7.0.52.
>> 
>> Cheers
>> 
>> Tim
>> 

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

Reply via email to