все действия, отправляемые любому агенту с помощью send
, выполняются в пуле потоков с парой потоков, превышающей физическое число процессоров. это заставляет их работать ближе к полной мощности процессора. если вы делаете 1000 звонков, используя send
, то на самом деле вы не тратите много времени на переключение, вызовы, которые не могут быть обработаны немедленно, просто ждут, пока процессор не станет доступным. если они блокируются, то пул потоков может работать всухую.
когда вы используете send-off
, новый поток создается для каждого вызова. если вы send-off
1000 функций, те, которые не могут быть обработаны немедленно, все еще ждут следующего доступного процессора, но они могут повлечь дополнительные издержки при запуске потока, если пул потоков отправки произойдет быть на исходе. нормально, если потоки блокируют , потому что каждая задача (потенциально) получает выделенный поток.