高并发模式———领导者/追随者模式和半同步/半异步模式

本文深入探讨高并发模式、半同步/半异步模式及领导者/追随者模式在提高IO密集型应用性能方面的作用。通过多线程管理和事件分发,有效避免线程阻塞,实现CPU资源高效利用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

高并发模式

       高并发模式的意义:对于IO密集型的操作,因为IO操作速度远远小于CPU的计算速度,所以,如果程序阻塞于IO操作将大量浪费CPU。但是如果多线程的情况下,被IO阻塞的线程可以放弃CPU(或操作系统调度),将执行权限转移给其他线程。高效率的使用CPU。

半同步/半异步模式

  这里的同步模式是指程序按照代码序列的顺序执行,异步是指程序执行需要由系统事件来驱动

  •     主线程只管理监听socket,连接socket由工作线程来管理,当有新的连接到来,主线程就将接受之并将新返回的连接socket派发给某个工作线程,此后,该连接socket上的任何I/O操作都由这个工作线程来完成,直至客户关闭连接,这在一定程度上节省了线程切换的开销。
  •    主线程一般通过管道将连接socket派发给向工作线程。工作线程检测到管道上有可读时,就分析是否是一个新的客户连接请求到来,如果是,则把该新socket上的读写事件注册到自己的epoll内核事件表中。
     

领导者/追随者模式

       领导者追随者模式是多个线程轮流获得事件资源的集合,轮流监听,分发和处理事件的一种模式.同一时间只有一个领导者线程,其他都是追随者.当IO事件发生以后,领导者选出下一个领导者从追随者中,然后自己处理IO 事件。新选出的领导者监听IO 事件。

  例子:

     1.有若干个线程(一般组成线程池)用来处理大量的事件

     2.有一个线程作为领导者,等待事件的发生;其他的线程作为追随者,仅仅是睡眠。

     3.假如有事件需要处理,领导者会从追随者中指定一个新的领导者,自己去处理事件。

      4.唤醒的追随者作为新的领导者等待事件的发生。

     5.处理事件的线程处理完毕以后,就会成为追随者的一员,直到被唤醒成为领导者。

     6.假如需要处理的事件太多,而线程数量不够(能够动态创建线程处理另当别论),则有的事件可能会得不到处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值