Я работаю над многопоточным кодом сервера, где я создаю 2 потока, которые взаимодействуют с блокирующим TCP Socket после accept()
.Использование select() then read() против цикла blocking read()
Тема № 1 проверяет, есть ли команды из очереди сообщений и записывается в сокет. Тема № 2 - это простой цикл while, который вызывает read
, а затем блокирует, если нет готовых к чтению данных.
Однако мой коллега сказал мне, что я не должен делать то время цикла с read
, как он будет тратить циклы CPU (Это блокирует read
, не ядро положить нить спать?), Что я должен использовать select()
системы затем запустите сокет.
Я ошибаюсь, считая прочитанную нить? Какой подход лучше?
Что использовали os? Конечно - вы можете использовать select/poll/epoll. Например: http://www-01.ibm.com/support/knowledgecenter/ssw_ibm_i_61/rzab6/poll.htm – Deep
Это чистая программа для Linux, точнее SLES11. – hastartes