我正在编写一个小型网络程序,其中延迟非常重要。我想捕获在某些系统调用中阻止执行的所有可能情况。
我知道connect
可以阻止执行几秒钟。 read
阻止,直到数据可用。 write
阻塞,直到系统缓冲区中有足够的空间。问题是:可以close
阻止执行一段时间吗?如果是,是否通过使用非阻塞套接字解决了这个问题?
我在Linux上工作。但是,了解其他系统也很有趣。
答案 0 :(得分:2)
是关闭可以阻止。当在同一个套接字上的recv / send调用上阻塞了另一个线程时,会发生这种情况。
使用非阻塞套接字来避免这种情况。