并发模式-半同步/半异步&&领导者/追随者
2018-03-11 21:22
183 查看
高并发模式
高并发模式意义:对于IO 密集型的程序,因为IO 的操作速度远远小于CPU 的计算速度, 所以 如果程序阻塞于IO操作将大量浪费CPU。 但如果是多线程情况下,被IO阻塞的线程可以放弃CPU(或操作系统调度),将执行权转移给其他线程。高效率的使用CPU。半同步/半异步模式
这里的同步与异步模式与IO模式中的同步异步概念不同。 这里同步模式是指程序按照代码序列的顺序执行,异步是指程序的执行需要由系统事件来驱动。常见的系统调用包括中断, 信号等
例子
主进程只负责监听socket, 连接socket由工作线程来管理。当由新连接到来时,主线程就接受之并将新返回的连接socket 派发给(通过管道写)某个工作线程。
工作线程处理新连接socket 上的IO 请求, 直至客户端断开socket连接。当管道上有socket连接事件时,将socket 上的读写事件注册到自己的epoll内核事件表中。
主从事件都维持自己的事件循环,主线程监听socket 事件并分发socket给工作线程,工作线程监听socket 上的读写事件并处理这些事件。
领导者追随者模式
领导者追随者模式是多个线程轮流获得事件源集合,轮流监听,分发和处理事件的一种模式。同一时间 只有一个领导者线程,其他都是追随者线程。当IO 事件到达后,领导者选出下一个领导者从追随者中,然后自己处理IO 事件。新选出的领导者监听IO 事件。
相关文章推荐
- 两种高效的并发模式:半同步/半异步和领导者/追随者
- Linux服务器--两种高效的并发模式(半同步/半异步模式、领导者/追随者模式)
- 《面向模式的软件体系结构2-用于并发和网络化对象模式》读书笔记(17)--- 领导者/追随者
- 半同步/半异步模式和领导者/追随者模式
- 探索 Java 同步机制(Monitor Object 并发模式在 Java 同步机制中的实现)
- java设计模式_单例模式的补充说明_并发同步块
- 领导者/追随者(Leader/Followers)模型和半同步/半异步(half-sync/half-async)模型
- 《面向模式的软件体系结构2-用于并发和网络化对象模式》读书笔记(11)--- 同步模式与定界加锁
- 线程池模型:领导者/追随者 半同步/半异步模型
- 线程池模式举例:HS/HA 半同步/ 半异步模式与L/F 领导者跟随者模式
- Unity&网络--HLAPI(1):服务器同步变量,‘脏标’模式以及[SyncVar]特性
- 半同步/半异步 与 领导者/追随者
- 半同步半异步模式 -------一个架构模式,清晰的结构,高效并发的I/O
- 半同步/半异步并发模式进程池实现
- about单例设计模式&同步
- 设计模式之工厂模式 & 单例模式(并发生成单例)
- 探索 Java 同步机制[Monitor Object 并发模式在 Java 同步机制中的实现]
- java并发:同步容器&并发容器
- 【转】Monitor Object 并发模式在 Java 同步机制中的实现
- Android自定义账户类型和同步适配器模式 Custom Account Type & SyncAdapter