read函数用非阻塞方式怎么延迟

read函数用非阻塞方式怎么延迟,第1张

非阻塞方式通常使用轮询来实现延迟。轮询就是在每次循环中检查I/O是否就绪,如果就绪,就执行相应的 *** 作,如果不可用,就继续轮询。可以通过设置轮询的时间间隔来调整延迟的大小。另外,也可以使用多线程来实现,让线程1在每次循环中检查I/O是否就绪,如果不就绪,就让线程2睡眠一段固定的时间,然后再重新检查I/O。

“非阻塞”和“延时”这两个本来就是冲突的吧。

不吞食CPU但是要让线程挂起一段时间,方法自然是要求 *** 作系统在一段时间的线程调度内不要给当前线程分配时间片

“非阻塞”……

linux下不是有现成的异步定时器么,使用setitimer。linux下定时就3种方法,不使用setitimer的话,就是用sleep让进程休眠或者使用gettimeofday获取时间并比较超时。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11912455.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-19
下一篇2023-05-19

发表评论

登录后才能评论

评论列表(0条)

    保存