Я познакомился с LMAX и этой замечательной концепцией под названием RingBuffer. Итак, ребята, скажите, что при записи в кольцевой буфер только с одним потоком производительность намного лучше, чем с несколькими производителями...
Однако я действительно не считаю возможным для типичного приложения использовать только один поток для записи в кольцевой буфер... я действительно не понимаю, как это делает lmax (если они это делают). Например, N количество разных трейдеров выставляют ордера на биржу, это все асинхронные запросы, которые трансформируются в ордера и помещаются в кольцевой буфер, как они могут писать такие, используя один поток?
Вопрос 1. Я мог что-то упустить или неправильно понять какой-то аспект, но если у вас есть N параллельных производителей, как можно объединить их в 1 и не блокировать друг друга?
Вопрос 2. Я вспоминаю observables rxJava, где можно было взять N observables и объединить их в 1, используя Observable.merge интересно, блокирует ли он или поддерживает какую-либо блокировку каким-либо образом?