from("direct:A")
.process(//processing here)
.recipientList(//expression that return two recipients [direct:B, direct:C] )
from("direct:B")
.process(//processing here)...
from("direct:C")
.process(//processing here)...
.from("direct:A")Java メソッドのように動作します。つまり、それを呼び出すスレッドは継続しprocess()ます。
では、上記の場合はどうなるでしょうか?
スレッドが次に t1呼び出すとしましょうfrom("direct:A")
t1これからもprocess()
そしてt1入りますrecipientList()
ここから、wards がt1呼び出さfrom("direct:B")れ、from("direct:C")同期的に呼び出されます
また
direct:bdirect:c2 つの新しいスレッドで非同期に呼び出されます。