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]