1 设置为非阻塞的I/O函数(在读不到数据或者写入缓冲区满时不等待直接返回), 然后轮询。O_NONBLOCK
fcntl(SockFd, F_SETFL, O_NONBLOCK);
2 每一路I/O都用一个线程使用阻塞I/O函数进行读写。
2 poll、select。多路fd都没有可读时进入阻塞,不耗cpu,有时再唤醒线程返回,然后去读。
1 设置为非阻塞的I/O函数(在读不到数据或者写入缓冲区满时不等待直接返回), 然后轮询。O_NONBLOCK
fcntl(SockFd, F_SETFL, O_NONBLOCK);
2 每一路I/O都用一个线程使用阻塞I/O函数进行读写。
2 poll、select。多路fd都没有可读时进入阻塞,不耗cpu,有时再唤醒线程返回,然后去读。