美文网首页
6.3、预发包、多线程回收深度思考

6.3、预发包、多线程回收深度思考

作者: 奥斯特洛司机 | 来源:发表于2019-04-13 23:16 被阅读0次

    1、连接池中连接回收的深度思考
    连接回收存在隐患。如果客户端断线,服务器端立即回收连接。很有可能被紧随其后新客户端进入连接使用。很可能产生麻烦。
    张三断线,epoll_wait可以立即感知到,立刻回收连接,这个时候李四连接进来,刚好使用了张三刚刚释放的连接。10秒钟到了,张三线程执行完返回,继续操作该连接,修改或者读写,很可能导致服务器崩溃。

    一个连接如果不用了,不应该立即放到空闲队列里,而是应该等待一个时间。再真正的回收连接到空闲队列中。等待前一个连接的业务已经执行完成。

    2、延迟回收
    用户断线的时候,先要延迟回收。与之对应的是立即回收

    3、程序退出时的线程安全终止
    多线程技术全面开花。还没有找到安全终止调用的合适地方。
    4、epoll事件处理的改造
    4.1、增加新的事件处理函数

     4.2、调整对事件处理函数的调用
    

    5、连接延迟回收的具体应用

    相关文章

      网友评论

          本文标题:6.3、预发包、多线程回收深度思考

          本文链接:https://www.haomeiwen.com/subject/ouedwqtx.html