Сокет Erlang на уровне ОС

Я так запутался в многопоточности. Поскольку Socket - это структура уровня ОС, обработка сокетов на уровне виртуальной машины Erlang BEAM имеет эквивалент на уровне ОС, и есть несколько вариантов для обработки параллельных подключений с помощью OS-Threads (select, poll, epoll,....) и это зависит от ОС, но то, что я не могу понять, и я много искал без какого-либо ответа, это: если у нас есть 4 параллельных процесса Erlang, которые слушают, чтобы принимать соединение на одном сокете, что эквивалентно на уровне ОС? 4 ожидающих параллельных ОС-потока? N Параллельный OS-Thread?

1 ответ

Нарисовать переписку сложно. Ваше предложение 4 параллельных потока, вероятно, является ближайшим эквивалентом. Определить ситуацию становится немного сложнее, потому что поток ядра, вероятно, займет больше системных ресурсов, чем каждый процесс. Потоки обычно совместно используют пространство памяти, в то время как между процессами существует защита памяти. Так что это зависит от того, насколько далеко вы хотите зайти в сравнение, но в основном будет 4 отдельные линии обработки, заблокированные для ввода-вывода.

Другие вопросы по тегам