Многие книги и учебники по Linux/Unix говорят о "Проблема грозового стада" , которая происходит, когда несколько потоков или вилок блокируются при выборе(), ожидая удобочитаемости прослушивающего сокета. Когда соединение приходит, все потоки и вилки разбужаются, но только один "выигрывает" с успешным вызовом "accept()". Тем временем, много времени процессора теряется впустую, пробуждая все потоки/вилки без причины.
Я заметил project, который обеспечивает "исправление" этой проблемы в ядре linux, но это очень старый патч.
Я думаю, что есть два варианта; Один, где каждая вилка делает select(), а затем принимает(), и тот, который просто принимает().
У современных ядер unix/linux все еще есть проблема Громового Стада в обоих этих случаях или только версия "select() then accept()"?