文档章节

同步异步、阻塞非阻塞

stefanzhlg
 stefanzhlg
发布于 2014/09/01 14:42
字数 543
阅读 60
收藏 1

同步与异步:一个任务的完成需要依赖另外一个任务时,只有等待被依赖的任务完成后,依赖的任务才能完成,这是一种可靠的任务序列。

阻塞与非阻塞:主要是从CPU的消耗上来说的,阻塞就是CPU停下来等待一个慢的操作完成以后,CPU才接着完成其他事情。


同步阻塞:最常用的一种用法,使用也是最简单的,但是I/O性能一般很差,CPU大部分处于空闲状态。

同步非阻塞:提升I/O性能的常用手段,就是将I/O的阻塞改为非阻塞方式,尤其在网络I/O是长连接同时传输数据也不是很多的情况下,提升性能非常有效。这种方式通常能提升I/O性能,但是会增加CPU消耗,要考虑增加的I/O性能能不能补偿CPU的消耗,也就是系统的瓶颈是在I/O还是在CPU上。

异步阻塞:这种方式在分布式数据库中经常用到,例如,在一个分布式数据库中写一条记录,通常会有一份是同步组撒的记录,而还有两至三份备份记录会写在其他机器上,这些备份记录通常都采用异步阻塞的方式写I/O。异步阻塞对网络I/O能够提升效率,尤其像上面这种同时写多份相同数据的情况。

异步非阻塞:这种组合方式用起来比较复杂,只有在一些非常复杂的分布式情况下使用,集群之间的消息同步机制一般用这种I/O组合方式。如Cassandra的Gossip通信机制就是采用异步非阻塞的方式,他适合同时要传多份数据到集群中不同机器,同事数据的传输量虽然不大但是却非常频繁。这种网络I/O用这个方式性能能达到最高。


© 著作权归作者所有

stefanzhlg

stefanzhlg

粉丝 65
博文 110
码字总数 85559
作品 4
浦东
程序员
私信 提问
Socket 同步/异步 与阻塞/非阻塞区别

在网上看了很多答案,也没找到合适的,也许本文也不是合适答案:) 同步和异步关注的是消息通信机制,而阻塞非阻塞关注的是程序在等待调用结果(消息,返回值)时的状态. 同步/异步是API 被调用...

山里来的鱼
2015/07/29
0
0
同步与异步&阻塞与非阻塞

同步与异步&阻塞与非阻塞 五大I/O模型详解 java I/O模型简述 一直为同步异步,阻塞非阻塞概念所困扰,特定总结了下 一、同步与异步的区别 1、概念介绍 同步:所谓同步是一个服务的完成需要依...

haoran_10
2016/07/06
4.2K
33
如何理解阻塞和非阻塞同步和异步

同步与异步 同步和异步关注的是消息通信机制,所谓同步,就是在发出一个调用时,在没有得到结果之前,该调用就不返回。但是一旦调用返回,就得到返回值了。换句话说,就是由调用者主动等待这...

清风与你
2017/04/10
0
0
Java中BIO,NIO,AIO的理解

在高性能的I/O体系设计中,有几个概念常常会使我们感到迷惑不解。具体如下: 1 什么是同步? 2 什么是异步? 3 什么是阻塞? 4 什么是非阻塞? 5 什么是同步阻塞? 6 什么是同步非阻塞? 7 ...

圣洁之子
03/13
0
0
同步,异步,阻塞和非阻塞的理解

概念 同步是两个对象之间的关系,而阻塞是一个对象的状态。 同步,异步 访问数据的方式,同步需要主动读写数据,在读写数据的过程中还是会阻塞;异步只需要I/O操作完成的通知,并不主动读写数...

好铁
2016/08/28
47
0

没有更多内容

加载失败,请刷新页面

加载更多

Oracle SQL语法实例合集

如需转载请注明出处https://my.oschina.net/feistel/blog/3052024 目的:迅速激活Oracle SQL 参考:《Oracle从入门到精通》 ------------------------------------------------------------......

LoSingSang
今天
1
0
增加 PostgreSQL 服务进程的最大打开文件数

https://serverfault.com/questions/628610/increasing-nproc-for-processes-launched-by-systemd-on-centos-7 要在systemd的配置里加才行...

helloclia
今天
2
0
组合模式在商品分类列表中的应用

在所有的树形结构中最适合的设计模式就是组合模式,我们看看常用商品分类中如何使用。 先定义一个树形结构的商品接口 public interface TreeProduct { List<TreeProduct> allProducts(...

算法之名
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部