Акка синхронная или асинхронная? - PullRequest
0 голосов
/ 30 января 2020

Я считаю, что реактивные системы должны быть асинхронными, но я слышал, что у Акки есть синхронные акторы?

Так значит ли это, что Акка синхронна? или актеры работают синхронно, но система асинхронна из-за нескольких акторов?

1 Ответ

0 голосов
/ 30 января 2020

Scala были синхронные актеры. Актеры Akka с самого начала асинхронны. Реактивные программы могут быть реализованы любым способом, синхронным и асинхронным. Единственное значимое требование к реактивным программам - поддержка противодавления. В синхронном программировании противодавление обеспечивается естественным путем путем блокировки участвующих потоков. Задать противодавление асинхронно, когда блокировка потоков запрещена, сложно. Для этой цели был разработан протокол реактивных потоков . Актеры Akka не поддерживают этот протокол и поэтому не могут считаться реактивными, но Akka Streams do.

Протокол реактивных потоков также может быть легко реализован синхронно с потоками, Семафоры и блокирующие очереди, то есть реактивные программы, не считаются асинхронными. Как правило, синхронное программирование проще, его единственным недостатком по сравнению с асинхронным программированием является потребление памяти для стеков потоков.

В целом, реактивные или нет, а также асинхронные или нет, являются независимыми функциями, они могут встречаться во всех комбинациях.

...