您的位置:首页 > 其它

并发模式-半同步/半异步&&领导者/追随者

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 事件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐