是否有操作系统可移植的方法来中断阻塞accept
?我有一个多线程守护程序/服务,当守护程序/服务收到关闭信号时,需要优雅地关闭所有侦听网络主机。我看到有人说你应该使用非阻塞套接字或选择超时 - 但这些不会降低性能,因为我的应用程序应该尽可能快?守护进程在主线程中运行,而每个侦听网络主机在自己的线程中运行。现在的问题是accept
如果侦听网络主机的套接字上没有网络流量,则无限期等待。如果我应该使用信号,那么是否有一个使用信号来中断的示例accept
?
这里的解决方案是不调用accept
当无事可做时。只需使用非阻塞select
or poll
等到有东西可以接受,然后accept
在那时候。除非您创建一个非常小的超时,否则从非阻塞调用中唤醒并再次返回等待该套接字不会对性能产生任何影响。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)