epoll+behavior tree+disruptor
От: Mr Bombastic Австралия жж
Дата: 09.12.16 22:11
Оценка:
Делаю необычное (рефакторинг из наивного синхронного TCP протокола): логика сетевого протокола склеена из кубиков behavior tree в "потоке управления", цикл селектора epoll (Java Selector) в его собственном потоке-синглтоне, N клиентов вызывают сервис и блокируются до окончания транзакции. Для как минимум передачи данных из цикла epoll хочу использовать disruptor one-to-many.

У кого есть опыт использования disruptor в связке с epoll? У кого есть опыт готовки behavior tree?

PS классы для behavior tree накидал сам.
Re: apache_mina(epoll) +behavior tree без disruptor
От: Mr Bombastic Австралия жж
Дата: 12.12.16 09:03
Оценка:
Здравствуйте, Mr Bombastic, Вы писали:

MB>Делаю необычное (рефакторинг из наивного синхронного TCP протокола): логика сетевого протокола склеена из кубиков behavior tree


Неведомая зверушка обрастает тощим мяском путём срезания барбароссовских задумок:
оставил в коде Mina (которая epoll ), вывихнул мозг от скрещивания Disruptor+Behavior Tree и выбросил Disruptor; inter-thread остался на неправославном wait/notify/volatile.
Re: epoll+behavior tree+disruptor
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 12.12.16 13:08
Оценка:
Здравствуйте, Mr Bombastic, Вы писали:

MB>PS классы для behavior tree накидал сам.

Как это вообще должно работать в связке?
Sic luceat lux!
Re[2]: epoll+behavior tree+disruptor
От: Mr Bombastic Австралия жж
Дата: 12.12.16 20:05
Оценка: 4 (1)
Здравствуйте, Kernan, Вы писали:

MB>>PS классы для behavior tree накидал сам.

K>Как это вообще должно работать в связке?

Behavior Tree крутится в собственном цикле, в собственной нитке (синглтоне). Параллельно сидят несколько тасков-последовательностей из: "нужно ли дозакачать", "открыть сессию TCP", "залогиниться", "закачать", "закрыть сессию TCP". Запрос приходит из другой нитки и блокируется до завершения (он же передает объект-приемник для данных tcp); таски крутят свои где-то нитки (в Mina) и пока "в процессе", возвращают статус "running".
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.