Почтовый ящик всегда сохраняется в порядке поступления сообщений.
Однако порядок использования сообщений определяется вашим кодом.
Если у вас есть простой процесс с общим предложением receive
, который получает что-либо, порядок получения сообщений совпадает с порядком их поступления.
loop() ->
receive
Any ->
do_something(Any),
loop()
end.
Однако, если у вас есть выборочный receive
с предложениями соответствия, он будет искать в почтовом ящике сообщения этого определенного типа и будет использовать первое соответствующее сообщение, фактически пропуская несоответствующие сообщения. В следующем примере, если есть сообщения, помеченные как важные в очереди, они будут обработаны перед любым другим сообщением. Примечание. Подобное совпадение приведет к поиску всех сообщений в очереди, что является проблемой для многих сообщений. В этой области произошли некоторые события, но я не в курсе.
loop() ->
receive
{important, Stuff} ->
do_something_important(Stuff),
loop();
Any ->
do_something(Any)
loop()
end.