Reactor 线程模型

1,465 阅读1分钟

概述

  • Reactor 线程模型主要可以分成以下几种
    • 单 Reactor 单线程

    • 单 Reactor 多线程

    • 多 Reactor 多线程

单 Reactor 单线程

图片

  • 特点:

    • 单个线程完成建立连接、处理请求、回送请求的所有工作
  • 缺点:

    • 无法利用多核CPU
    • 由于是单线程的,所以如果某一次的处理请求耗时较大,将会阻塞很长时间
  • 优点:

    • 单线程运行,不需要加锁,所有操作都是串行
  • 应用: redis 线程模型

单 Reactor 多线程

图片

  • 特点:
    • Reactor 为主线程,专门处理产生事件的 socket,并将其分发到对应的处理器中
    • 对应的处理器将会采用线程池的实现,进行多线程处理
  • 缺点:
    • 存在数据安全问题,多线程

    • 主线程需要处理所有的网络事件,在并发量较大的时候,很容易造成阻塞!

多 Reactor 多线程

图片

  • 特点:
    • 主线程仅仅用来建立连接,建立连接后将 socket 绑定到其他线程,而后主线程就不管了,后续的网络IO 事件将由socket 所绑定的线程进行处理
  • 应用:
    • Nginx 多 Reactor 多进程

    • Netty 多 Reactor 多线程

参考:

mp.weixin.qq.com/s/px6-YnPEU…