Как действительно передает циклы в работе erlang, они - синхронизация когда дело доходит до обработки сообщений?
Насколько я понимаю, цикл запустится, "получают" луг сообщение и затем выполняют что-то и поражают другое повторение цикла.
Таким образом, это должно быть синхронизацией?правильно?
Если несколько клиентов отправляют сообщения в тот же цикл сообщения, то все те сообщения ставятся в очередь и выполняются один за другим, или?
Для обработки нескольких сообщений в параллели необходимо ли было бы породить несколько циклов сообщения в различных процессах, правильно?
Или я неправильно понимал все это?
Отправка сообщения асинхронная. Обработка сообщения является синхронной - за раз принимается одно сообщение - потому что каждый процесс имеет свой собственный (и только один) почтовый ящик.
Из руководства ( Erlang concurrency
Каждый процесс имеет свою собственную входную очередь для сообщений, которые он получает. Новые полученные сообщения помещаются в конец очереди. Когда процесс выполняется при приеме первое сообщение в очереди сопоставляется с первым шаблоном в приеме, если оно совпадает, сообщение удаляется из очереди и выполняются действия, соответствующие шаблону.
Однако, если первый шаблон не совпадает, проверяется второй шаблон, если он совпадает, сообщение удаляется из очереди и выполняются действия, соответствующие второму шаблону. Если второй шаблон не соответствует, пробуется третий и так до тех пор, пока не останется больше шаблонов для тестирования. Если больше нет шаблонов для тестирования, первое сообщение остается в очереди, и вместо этого мы пробуем второе сообщение. Если это соответствует какому-либо шаблону, выполняются соответствующие действия, и второе сообщение удаляется из очереди (сохраняя первое сообщение и любые другие сообщения в очереди). Если второе сообщение не совпадает, мы пробуем третье сообщение и так далее, пока не дойдем до конца очереди.Если мы достигаем конца очереди, процесс блокируется (останавливает выполнение) и ждет, пока не будет получено новое сообщение, и эта процедура повторяется.
Конечно, реализация Erlang «умна» и сводит к минимуму количество проверок каждого сообщения на соответствие шаблонам в каждом приеме.
Таким образом, вы можете создавать приоритеты с помощью регулярного выражения, но параллелизм осуществляется через несколько процессов.