Q:在Linux下,當一個線程中使用close關閉socket時另外一線程中poll()沒有檢測到事件。編程
A:這是預期的行爲。poll和select響應句柄上的事件,當句柄被關閉,已經不存在了,固然也不會產生相應的事件。 能夠用shutdown來解決該問題。socket
在通訊編程中,shutdown一般是一個較好的解決主動關閉的選項,能夠避免不少close的麻煩。shutdown後,由poll檢測到事件後,再對socket進行close。線程