[C++] 在编写服务器代码时,应该选择时钟还是线程来做心跳包处理

2916 人浏览 | 时间: 2016-11-13 14:03:55 | 作者: codexia

    在此之前,我先感谢C++技术网之前回答过的问题,接下来我问的问题是接在 Windows Socket IOCP 完成端口之后的。

    C++技术网之前提供的答案,是看指定的一些书籍。我之后也是下载来看,发现书中讲的是很详细,但是这一看也不知不觉花了四个月的时间,有些内容没看完,也有些也没理解好。

    尽管如此,关于 Windows Socket IOCP,我也只能到处找几个源码加书中的理解也勉强算是可以理解的了。但还有一些疑问在我这里,就好比关联到完成端口的套接字,关联是关联了,但是如何解绑呢?这又是很头疼的问题,最后搜索出来的答案是只要 closesocket() 就好了,IOCP 会自动检查句柄是否有效,如果无效,将会自动解绑。虽然我不知道算不算正确,但总比没有答案的好;接下来还有内存异常的处理;内存池等问题。来来回回也算是遇到了很多问题。

    关于其他的一些问题,之后我再慢慢通过C++技术网一一提问吧。

    话说得有点长了,不好意思,接下来是要问的问题。

    在编写服务器代码时,应该选择时钟还是线程来做心跳包处理呢?

    时钟:

    A-1) 优点就是指定每隔一段时间,就会执行到指定的函数。不管指定函数有没有执行完成,到了一定的时间又会去执行。就好比一个队长每隔段时间叫一名队员去做事,然后队长就不管队员是否把事情做完,就去休息,等待下段时间继续叫一名队员去做事。

    A-2缺点:

请微信扫码阅读。
为防止恶意爬虫,
已开启反爬机制,
理解哟~~~~
标注
评论
站内搜
百度搜
传送到手机
手机扫码,识别文字,完成传送x
加载中...
标注内容x
加载中...
添加标注x
收藏 0 点赞 0

相关阅读