Как я понимаю, актеры - это в основном легкие потоки, реализованные поверх потоков, запускающие много актеров в небольшом пуле общих потоков.
Учитывая, что случай, используя блокирующие операции в акторе, блокирует основной поток. Это не проблема корректности, потому что в библиотеке актеров будет появляться больше потоков по мере необходимости (правильно?), Но потом вы получаете множество и много потоков, что отрицает преимущество использования актеров в первую очередь.
Учитывая, что, как работают актеры, когда вам нужно выполнять такие операции ввода-вывода? Существуют ли операции, которые "actor-block", приостанавливающие действие актера, позволяя потоку перейти к другим операциям (так как блокирующие операции приостанавливают поток, позволяя процессору перейти к другим операциям), или все, что написано на CPS, с цепью актеры? Или актеры просто не подходят для такого рода длительной операции?
Предыстория: у меня есть опыт написания многопоточного материала классическим способом и хорошо понимаю, как работают циклы CPS/event, но не имеют абсолютно никакого опыта работы с актерами и просто хотят понять на высоком уровне, как они вписываются, прежде чем погрузиться в код.