IMultithreadedChannel is a multithreaded version of the IChannel API. Each IChannel-like method is accomanied by a String key representing which virtual "instance" of the channel is being called. This allows a single instance of IMultithreadedChannel to take the place of many IChannel instances.
Warning | ||
---|---|---|
| ||
Warning: work is in progress for propose and achieve concensus on formally deprecating IMultithreadedChannel and related APIs. See proposal page. |
IMultithreadedChannel came into being in 2001.
A problem with IMultithreadedChannel since 2002 is that it is not well understood under what circumstances and why it is appropriate to write an IMultithreadedChannel rather than a basic IChannel. This is something that should be addressed in the JavaDoc for this interface. However, this Wiki page is also a place to collect insight and experience with this API.
...
- In August 2003 Bill Thompson posted some useful abstract classes for using IMultithreadedChannel
- Using a ConcurrentHashMap instead of Collections.synchronizedMap() or other "hard" synchronization on the internal state map can reduce the performance costs and potential deadlock in state map synchronizations while retaining the threadsafety that implementation of IMultithreadedChannel requires.