小编has*_*tes的帖子

使用 select() 然后 read() 与阻塞 read() 循环

我正在处理一个多线程服务器代码,我在其中创建了 2 个线程,这些线程在accept().

线程 #1 检查是否有来自 msg 队列的命令并将其写入套接字。线程 #2 只是一个简单的 while 循环,read如果没有准备好读取的数据,它会调用然后阻塞。

但是我的同事告诉我,我不应该用 a 做一个 while 循环,read因为它会浪费 CPU 周期(这是一个阻塞read,内核不会让线程进入睡眠状态吗?),我应该使用select()系统调用然后读取套接字。

我假设阅读线程不正确吗?哪种方法更好?

c sockets multithreading

5
推荐指数
1
解决办法
3195
查看次数

标签 统计

c ×1

multithreading ×1

sockets ×1