So effectively, there should be one thread pool and every subsystem
using an event model/executors to feed it?
To Jason's point, is one queuing strategy sufficient for all subsystems?
On 9/15/11 4:18 AM, Carlo de Wolf wrote:
If you enter a pool with a thread that can potentially block
you're
already too late in the game.
During performance testing of EAP 5 one bottleneck we found was that
releasing permits on a semaphore is a single threaded operation.
https://issues.jboss.org/browse/JBPAPP-4805
Suppose we had a resource pool of 10. Then it would be much better if
there are just 10 threads working through that pool. They can be fed
with an unfair BlockingQueue of tasks. The resource itself would not
have to be guarded with a semaphore. And the unfair BlockingQueue
would maximize throughput without sacrificing response time deviation.
(
https://issues.jboss.org/browse/JBPAPP-2763)
Carlo