[concurrency-interest] ForkJoinPool for async http calls?
mthornton at optrak.com
Thu May 10 08:48:22 EDT 2012
On 10/05/12 13:31, Gregg Wonderly wrote:
> On 5/10/2012 7:12 AM, Christian Essl wrote:
>> Hi Viktor,
>> Thanks for your answer, and thanks for your patient discussion outside
>> of the mailing-list.
>> As said I like the akka-framework, still it would be very nice if
>> anybody could answer my original question whether ForkJoinTasks can
>> give a sort of non-blocking future also suitable for async IO, because
>> I am stil not sure.
> I believe that ForkJoin was designed specifically for managing
> non-blocking, compute bound tasks. Primarily, this issue of "partial
> failure" in the form of I/O failures really complicates things.
> Practically, you'd like for your I/O to be linearly consistent, so a
> ForkJoin task, would need to do all the I/O for a particular
> "operation" itself.
> Inside of a Servlet container, you really shouldn't be mucking about
> with threading, related to the request completion. If you have other
> services to interact with, they should be done within a linear
> progression of code inside of the doGet, doPut, doPost etc methods.
> The thread which calls doGet/doPost is, already, from a pool which the
> container is managing in some way. Adding another thread to the mix,
> to perform some work, would require the calling thread to block and
> wait for it to complete anyway, so why not just have the calling
> thread do that work?
Not if you use the async support in the latest Servlet specification.
More information about the Concurrency-interest