英文:
What are the uses of SetWriteDeadline
问题
有几种情况下可能会使用SetWriteDeadline:
-
当你需要在写入数据时设置一个截止时间时,可以使用SetWriteDeadline。例如,如果你希望在一定时间内发送数据给对方,并在超过该时间后停止发送,你可以设置一个写入截止时间。
-
在网络通信中,有时候需要确保数据的及时传输。通过设置写入截止时间,你可以在一定时间内确保数据被发送出去,如果超过了截止时间还未发送成功,你可以采取相应的处理措施。
-
在某些情况下,你可能需要控制写入操作的超时时间,以避免长时间的阻塞。通过设置写入截止时间,你可以在超过指定时间后取消写入操作,从而避免程序长时间等待。
总之,SetWriteDeadline可以帮助你在写入数据时设置一个截止时间,以便控制写入操作的超时和及时传输数据。
英文:
Can someone please give me a few scenarios where I might use SetWriteDeadline? I know that SetReadDeadline helps a developer to determine whether the connected endpoint is still reachable or not (with the help of PING/PONG frames), but I can't figure out why I might use SetWriteDeadline.
答案1
得分: 4
Write to a connection在写操作未在最后设置的截止时间之前完成时会返回一个错误。
设置写截止时间的典型用法是检测对等方是否未读取数据或未以可接受的速率读取数据。
一个健壮的应用程序会同时设置读和写的截止时间(但通常不设置为相同的值)。
英文:
Write to a connection returns an error when the write operation does not complete by the last set deadline.
The typical use of a write deadline is to detect a peer that is not reading data or is not reading data at an acceptable rate.
A robust application will set both read and write deadlines (but usually not to the same value).
答案2
得分: 0
一个强大的应用程序将设置读取和写入的截止时间,但最好使用Go 1.12(2019年第一季度)。参见golang/go issue 25729:net: SetDeadline
的性能较差。
最近已经修复了这个问题:
> 无论-cpu值如何,吞吐量和延迟的改进都受到的影响较小。干得好!
英文:
> A robust application will set both read and write deadlines
But preferable with Go 1.12 (Q1 2019).
See golang/go issue 25729: net: SetDeadline
performance is poor
That has recently been fixed:
> Both the improvements in throughput and latency are far less affected by -cpu values. Nice job!
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论