готов почитать из сокетов a,b,c. Какая стратегия более правильная, читать до упора из каждого или распределить чтение между сокетами? Я обычно читаю до ewouldblock, но не может ли это вызвать starvation на остальных сокетах?
В общем случае это же даже не io-bound задача, я могу прочитать за раз кучу всего, а потом итерировать по полученным данным, spawn'я задачи обработки. Хотя это наверное вопрос самоограничения, я могу по какой-либо границе кванта сам себя снова в очередь поставить дав поработать другим.
Если просто читать в буфер и передавать дальше в воркеры, то вряд ли будет голодание. А если прочитать, распарсить, передать обработчику в этом же потоке, то тут вполне возможно, что другие сокеты не дождаться своей очереди и начнут закрываться из-за переполнения системного буфера
Обсуждают сегодня