Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Jakarta-httpclient 
Wiki" for change notification.

The following page has been changed by RolandWeber:
http://wiki.apache.org/jakarta-httpclient/HttpAsyncThreadingDesign

------------------------------------------------------------------------------
  
  == Blocking IO Implementation ==
  
+ This section presents design alternatives for implementing the HttpAsync 
interfaces.
+ An implementation is also referred to as a ''dispatcher'', since each 
implementation
+ of {{{HttpDispatcher}}} requires a matching implementation of 
{{{HttpHandler}}} and
+ will make use of {{{HttpNotificationHandler}}}, which is implemented by 
applications.
+ [[BR]]
+ In the figures below, fat lines indicate threads running from top to bottom.
+ This is not necessarily one thread on either side. The fat red line to the 
left
+ stands for all application threads, while the fat cyan line to the right 
stands
+ for all background threads.
+ Objects for thread synchronization are represented by a queue-like symbol. 
Thinner lines
+ in the respective color connect the synchronization objects to the thread 
lines.
+ Big queue objects are used for passing handles, small queue objects for 
synchronizing
+ on a specific handle.
+ 
+ There are two big queue symbols in each design alternative. One is used to 
pass the
+ handles for newly created objects from the application side to the background 
threads.
+ That object is under control of the dispatcher.
+ The second one is used to pass handles from the notification handler to the 
application side.
+ That happens under control of the application, indicated by the red backdrop 
of the symbol.
+ Applications can use any number of actual objects there, for example to route 
handles to
+ different application threads.
+ [[BR]]
+ There are two small queue symbols in each design alternative. One is used to 
pass the
+ response (or error) from the background threads to the application threads. 
The other
+ is used to indicate completion of response processing to the background 
threads, which
+ can then release or re-use the connection that was locked up by that 
response. Both of
+ these synchronization objects are under control of the dispatcher.
+ 
+ 
  === Red Design ===
  
  ''describe the original design, which maximizes responsibilites for 
application threads''

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to