Disclaimer: erlang newbie.
Одна из вещей, которая привлекла меня в erlang, в первую очередь, - это модель акторов; идея, что разные процессы выполняются одновременно и взаимодействуют посредством асинхронного обмена сообщениями.
Я только начинаю разбираться в OTP и, в частности, смотрю на gen_server. Во всех примерах, которые я видел - и предоставил, что они являются примерами учебного типа - для реализации поведения модуля используется handle_call ()
вместо handle_cast ()
.
Я нахожу это немного запутанным. Насколько я могу судить, handle_call - это синхронная операция: вызывающий блокируется до тех пор, пока вызываемый не завершит работу и не вернется. Что, кажется, противоречит философии асинхронной передачи сообщений.
Я собираюсь запустить новое приложение OTP. Это кажется фундаментальным архитектурным решением, поэтому я хочу быть уверенным, что понимаю, прежде чем приступить к делу.
Чтобы быть конкретным, мои вопросы:
Спасибо.