我编写了一个简单的TCP / IP客户端应用程序,该应用程序不断检查服务器中的新数据。实现此循环的线程安排在sched_priority = 0
和sched_policy = SCHED_OTHER
处。从本质上讲,我已将其设置为最低优先级。
服务器仅每秒发送一次新数据,这意味着连续检查在某种程度上是不必要的。但是,我在质疑我是否应该使用POSIX sleep
,或者我已将其安排在最低优先级的事实是否足够好。
[在什么条件下程序应包含sleep
?我应该担心应用程序中的CPU过度使用吗?
[而不是休眠,线程应该在套接字的read()
调用中或在select()
或poll()
之类的多路复用调用中阻塞。
阻塞就像在睡觉,只是当新数据到达时它将立即唤醒。