两种高效的并发模式
来源:互联网 发布:python运维开发工程师 编辑:程序博客网 时间:2024/06/11 15:25
并发编程的目的是让程序“同时”执行多个任务。如果程序是计算密集型的,并发编程并没有优势,反而由于任务的切换使效率降低。但如果程序是I/O密集型的,比如经常读写文件,访问数据库等,则情况就不同了。由于I/O操作的速度远没有CPU的计算速度快,所以让程序阻塞于I/O操作将浪费大量的CPU时间。如果程序有多个执行线程,则当前被I/O操作所阻塞的执行线程可主动放弃CPU(或由操作系统来调度),并将执行权转移到其他线程。这样一来,CPU就可以用来做更加有意义的事情(除非所有线程都同时被I/O操作所阻塞),而不是等待I/O操作完成,因此CPU的利用率显著提升。
从实现上来说,并发编程主要有多进程和多线程两种方式。
并发模式是指I/O处理单元和多个逻辑单元之间协调完成任务的方法。服务器主要有两种并发编程模式:半同步/半异步(half-sync/half-async)模式和领导者/追随者(Leader/Followers)模式。
半同步/半异步模式
在I/O模型中,“同步”和“异步”区分的是内核向应用程序通知的是何种I/O事件(是就绪事件还是完成事件),以及该由谁来完成I/O读写(是应用程序还是内核)。在并发模式中,“同步”指的是程序完全按照代码序列的顺序执行;“异步”指的是程序的执行需要由系统事件来驱动。常见的系统事件包括中断、信号等。
0 0
- 两种高效的并发模式
- 四.两种高效的并发模式
- 两种高效的并发模式
- 两种高效的并发模式
- 服务器两种高效的并发模式
- 两种高效的事件处理模式和并发模式
- Reactor模式,两种高效的并发模式
- reactor/proactor两种高效的事件处理模式和并发模式
- 两种高效的并发模式:半同步/半异步和领导者/追随者
- Linux服务器--两种高效的并发模式(半同步/半异步模式、领导者/追随者模式)
- 两种高效的事件处理模式
- 高效的事件处理模式和高效的并发模式
- 两种高效的事件处理模式 reacotr模式和proactor模式
- 两种高效的事件处理模型:Reactor模式和Proactor模式
- Linux服务器--服务器模型,I/O模型,两种高效的事件处理模式
- map的两种遍历(低效/高效)
- apache的MPM模块两种工作模式详解(多任务高并发)
- java 多线程并发系列之 生产者消费者模式的两种实现
- 黑马程序员——java的类加载器
- 远程输入 隐私保护声明
- Linux下阅读源码工具------use method
- 第二章,if和switch判断(C++)
- Mybatis使用之日志相关
- 两种高效的并发模式
- js保留数据小数部分,如果是整数不保留
- 25>AFN的基本使用
- java调用bat
- RecyclerView+CardView+共享元素+调色板的综合demo
- jquery ajax全局事件
- 分布式配置管理平台-Disconf
- 黑马程序员_Java(list子类,泛型,
- android 横竖屏切换