当前位置:  开发笔记 > 编程语言 > 正文

如何对IO操作进行速率限制?

如何解决《如何对IO操作进行速率限制?》经验,为你挑选了1个好方法。

假设您有一个从套接字读取的程序.如何将下载速率保持在某个给定阈值以下?



1> Steve Jessop..:

在应用程序层(使用Berkeley套接字样式API),您只需观察时钟,以您想要限制的速率读取或写入数据.

如果你平均只读取10kbps,但是源发送的数量超过了这个,那么最终它和你之间的所有缓冲区都将填满.TCP/IP允许这样做,并且协议将安排发送器减速(在应用层,可能所有你需要知道的是,在另一端,阻塞写入调用将阻塞,非阻塞写入将失败,并且异步写入将无法完成,直到您已阅读足够的数据才能允许它.

在应用层,您只能是近似值 - 您不能保证硬限制,例如"任何一秒内不超过10 kb将通过网络中的给定点".但是如果你跟踪你收到的内容,从长远来看你可以获得平均水平.

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有