繁体   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