11 Matching Annotations
  1. Last 7 days
    1. shared_from_this()是什么意思

      shared_from_this()的作用是使类对象安全的获取自己的 shared_ptr 引用

    2. 当没有共享智能指针指向这个TcpConnection对象时(引用计数为0),这个TcpConnection对象就会被析构删除(堆内存释放)

      由于是在for循环内创建了一个临时的conn对象来持有item.second这个智能指针,然后把item.second这个智能指针释放掉,但item.second指向的堆内存未被释放(现在由conn管理),然后conn在其所属的sub eventloop线程中执行TcpConnection::connectDestroyed(),将conn作为参数传给TcpConnection::connectDestroyed()函数会使conn的引用计数+1,因此即使for循环结束conn离开for循环作用域,其管理的堆内存仍然不会被释放,直到TcpConnection::connectDestroyed()函数执行完毕,没有任何智能指针指向此堆内存了,此TCPConnection对象占用的堆内存才真正被释放

  2. Jul 2024
    1. 全局概览Poller、Channel和EventLoop在整个Multi-Reactor通信架构中的角色

      图的说明: 在这个模型中,main reactor(主反应堆)主要负责接受新的客户端连接请求。这包括处理accept事件,接受新连接,并将新连接分派给sub reactor(子反应堆)。

      sub reactor则负责处理具体的I/O事件,如读事件(read)、写事件(write)、以及错误事件(error)。这些I/O事件的处理由sub reactor中的各个EventLoop实例来完成,每个实例都会有自己的PollerChannel来处理具体的事件。

      总结来说: - main reactor负责处理新的连接请求(连接事件)。 - sub reactor负责处理已建立连接的I/O事件(可读、可写、错误事件)。

  3. Apr 2024
    1. UNION:A并B,去除重复部分(不去除交集) UNION ALL:A并B,不去除重复部分(不去除交集) UNION ALL不执行去重操作,效率高

    1. SQL99语法: 内连接:INNER JOIN ON 左外连接:LEFT OUTER JOIN ON 右外连接:RIGHT OUTER JOIN ON 满外连接:FULL OUTER JOIN INNER, OUTER可省略

    1. where name like '_a'; ——第二个字符是下划线,第三个字符是a的name; 或者这样写: where name like '$_a' escaep '$'