簡體   English   中英

中斷accept()

[英]Interrupting accept()

是否有OS便攜式方法來中斷阻止accept 我有一個多線程守護進程/服務,當守護進程/服務收到關閉信號時,它需要正常關閉所有偵聽網絡主機。 我看到有人說您應該使用非阻塞套接字或使用超時進行選擇-但是這些不會降低性能,因為我的應用程序應該盡可能快嗎? 守護進程在主線程中運行,而每個偵聽網絡主機在其自己的線程中運行。 現在的問題是,如果偵聽網絡主機的套接字上沒有網絡流量,則accept無限期等待。 如果我應該使用信號,那么是否有使用信號中斷accept的示例?

解決方案是在無事可做時不調用accept 只需使用非阻塞selectpoll來等待,直到有要接受的東西,然后再accept 除非您創建一個非常小的超時,否則從非阻塞調用中喚醒並再次等待該套接字不會有任何性能影響。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM