Ready the [documentation](http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/ThreadPoolExecutor.html) I'm not sure it will have the intended behavior: 

If fewer than corePoolSize <em>In our case 0</em> threads are running, the Executor always prefers adding a new thread rather than queuing.

So if we have 20 query at once, will create 20 thread, to be detroyed after 60sec. I won't be queued, or it least, unlikely to be.

It might be the normal behavior, but we should make sure that's what we want.