Основные преимущества использования модели акторов в программировании:
- Безопасное распараллеливание. 5 Каждый актор имеет своё состояние и общается с внешним миром только посредством асинхронных сообщений. 4 Это позволяет реализовать параллельную обработку без условий гонки ресурсов. 5
- Предсказуемый порядок выполнения. 5 Акторы обрабатывают только одно сообщение в каждом цикле, поэтому порядок выполнения более предсказуем, чем в многопоточной среде. 5
- Слабая связь акторов. 5 Они слабо связаны друг с другом посредством асинхронного обмена сообщениями, поэтому рефакторинг или изменение кода можно легко осуществить без влияния на остальную часть приложения. 5
Некоторые недостатки использования модели акторов:
- Сложности с рассуждением об алгоритме. 1 Он распределяется по разным субъектам и файлам, и разработчику приходится искать его и следовать коду. 1
- Невозможность традиционной блокировки. 1 Необходимо использовать более сложный стиль STM. 1
- Незащищённость акторов от перегрузки. 4 Очереди сообщений для акторов не ограничены по размеру, поэтому при интенсивном обмене сообщениями между акторами размер очереди может постоянно расти. 4