我有一个从非阻塞套接字读取的单独线程,我可以根据需要使用尽可能多的 CPU,因为低延迟是项目最重要的方面。简单地循环 read() 调用会比首先使用 select() 来查找可读的套接字更快吗?
伪代码:
while (!finished) {
int rc = read(socket, buf);
if (rc > 0) {
// process buf
} else if (rc == 0) {
// eof, reconnect to server
} else if (errno == EGAIN) {
// nothing to do, continue
} else if (errno == ECONNREFUSED) {
// connection refused, attempt connect again
} else {
// error not yet supported
}
}