RendezvousChannel
extends QueueChannel
and exhibits the same behaviour:
- Reading from the channel blocks until either a message is available or a timeout occurs.
- Writing to the channel blocks until the queue's capacity permits another message or a timeout occurs.
Internally however, RendezvousChannel
uses a capacity of 0 in conjunction with a SynchronousQueue
. Therefore, senders will block until receivers have finished, well, receiving and vice versa, basically establishing synchronous communication.
As for examples, I don't think there are any yet.
If you want to get an impression of how RendezvousChannel
can be used as temporary reply channel for implementing request/reply scenarios (as hinted at in the reference documentation, section 3.2.4), have a look at the source code of the doSendAndReceive
method of MessageChannelTemplate
. That one uses PollableChannel
implementation internally, but the pattern could be easily transfered RendezvousChannel
.