Q:在Linux下,当一个线程中使用close关闭socket时另外一线程中poll()没有检测到事件。编程
A:这是预期的行为。poll和select响应句柄上的事件,当句柄被关闭,已经不存在了,固然也不会产生相应的事件。 能够用shutdown来解决该问题。socket
在通讯编程中,shutdown一般是一个较好的解决主动关闭的选项,能够避免不少close的麻烦。shutdown后,由poll检测到事件后,再对socket进行close。线程