文档章节

同步,异步,阻塞,非阻塞

星仔小号
 星仔小号
发布于 2014/06/20 18:09
字数 625
阅读 487
收藏 39
点赞 2
评论 4

老张爱喝茶,废话不说,煮开水。
出场人物:老张,水壶两把(普通水壶,简称水壶;会响的水壶,简称响水壶)。
1 老张把水壶放到火上,立等水开。(同步阻塞)
老张觉得自己有点傻
2 老张把水壶放到火上,去客厅看电视,时不时去厨房看看水开没有。(同步非阻塞)
老张还是觉得自己有点傻,于是变高端了,买了把会响笛的那种水壶。水开之后,能大声发出嘀~~~~的噪音。
3 老张把响水壶放到火上,立等水开。(异步阻塞)
老张觉得这样傻等意义不大
4 老张把响水壶放到火上,去客厅看电视,水壶响之前不再去看它了,响了再去拿壶。(异步非阻塞)
老张觉得自己聪明了。

所谓同步异步,只是对于水壶而言。
普通水壶,同步;响水壶,异步。
虽然都能干活,但响水壶可以在自己完工之后,提示老张水开了。这是普通水壶所不能及的。
同步只能让调用者去轮询自己(情况2中),造成老张效率的低下。

所谓阻塞非阻塞,仅仅对于老张而言。
立等的老张,阻塞;看电视的老张,非阻塞。
情况1和情况3中老张就是阻塞的,媳妇喊他都不知道。虽然3中响水壶是异步的,可对于立等的老张没有太大的意义。所以一般异步是配合非阻塞使用的,这样才能发挥异步的效用。

程序员写程序,很多情况下,老张和水壶都要涉及,即调用者与被调用者。四种组合模式各有所长。
这个例子和银行排队有异曲同工之妙,可是我觉得这个会比较容易理解一些。
老张一次比一次聪明,我承认跟老张很像。刚开始的情况逻辑比较简单,但效率低下。随着慢慢的提高,效率也提高了。所以个人认为,程序的效率和简单程度是成反比的。
但不是说异步非阻塞就一定是最好的,有的情况下更适合使用同步或者阻塞。

© 著作权归作者所有

共有 人打赏支持
星仔小号
粉丝 13
博文 18
码字总数 16581
作品 0
高级程序员
加载中

评论(4)

Vijay_wu
Vijay_wu
已销号
已销号
形象。
u
upc
形象,很赞!
u
usabucket
太形象了
Socket 同步/异步 与阻塞/非阻塞区别

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

山里来的鱼 ⋅ 2015/07/29 ⋅ 0

同步与异步&阻塞与非阻塞

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

haoran_10 ⋅ 2016/07/06 ⋅ 33

如何理解阻塞和非阻塞同步和异步

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

清风与你 ⋅ 2017/04/10 ⋅ 0

同步,异步,阻塞和非阻塞的理解

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

好铁 ⋅ 2016/08/28 ⋅ 0

IO的阻塞与非阻塞、同步与异步以及Java网络IO交互方式

最近工作中,接触到了Java网络编程方面的东西:Socket、NIO、MongoDB等,也看了tomcat的源码,也加强了线程方面的知识,也使用了MINA这样的框架。感觉获益良多,原本技术上的薄弱环节也在慢慢...

毛爷爷夸我帅 ⋅ 2015/03/27 ⋅ 0

聊聊同步、异步、阻塞与非阻塞

聊聊远程通信 Java远程通讯技术及原理分析 聊聊Socket、TCP/IP、HTTP、FTP及网络编程 RMI原理及实现 RPC原理及实现 轻量级分布式 RPC 框架 使用 RMI + ZooKeeper 实现远程调用框架 深入浅出S...

陶邦仁 ⋅ 2016/04/16 ⋅ 6

IO的阻塞与非阻塞、同步与异步以及Java网络IO交互方式

最近工作中,接触到了Java网络编程方面的东西:Socket、NIO、MongoDB等,也看了tomcat的源码,也加强了线程方面的知识,也使用了MINA这样的框架。感觉获益良多,原本技术上的薄弱环节也在慢慢...

Zero零_度 ⋅ 2016/02/22 ⋅ 0

关于异步,同步,阻塞与非阻塞

如果你想吃一份宫保鸡丁盖饭: 同步阻塞:你到饭馆点餐,然后在那等着,还要一边喊:好了没啊! 同步非阻塞:在饭馆点完餐,就去遛狗了。不过溜一会儿,就回饭馆喊一声:好了没啊! 异步阻塞...

Sheamus ⋅ 2016/03/30 ⋅ 0

关于IO的同步,异步,阻塞,非阻塞

上次写了一篇文章:Unix IO 模型学习。恰巧在这次周会的时候,@fp1203 (goldendoc成员之一) 正好在讲解poll和epoll的底层实现。中途正好讨论了网络IO的同步、异步、阻塞、非阻塞的概念,当时...

xrzs ⋅ 2012/10/08 ⋅ 0

Unix 网络 IO 模型: 同步异步, 傻傻分不清楚?

出处 阻塞 IO, 非阻塞 IO, 同步 IO, 异步 IO 这些术语相信有不少朋友都也不同程度的困惑吧? 我原来也是, 什么同步非阻塞 IO, 异步非阻塞 IO 的, 搞的头都大了. 后来仔细读了一遍 《UNIX 网络...

永顺 ⋅ 2017/11/29 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

6. Shell 函数 和 定向输出

Shell 常用函数 简洁:目前没怎么在Shell 脚本中使用过函数,哈哈,不过,以后可能会用。就像java8的函数式编程,以后获取会用吧,行吧,那咱们简单的看一下具体的使用 Shell函数格式 linux ...

AHUSKY ⋅ 6分钟前 ⋅ 0

MySQL 内核深度优化

MYSQL数据库适用场景广泛,相较于Oracle、DB2性价比更高,Web网站、日志系统、数据仓库等场景都有MYSQL用武之地,但是也存在对于事务性支持不太好(MySQL 5.5版本开始默认引擎才是InnoDB事务...

OSC_cnhwTY ⋅ 13分钟前 ⋅ 0

单片机软件定时器

之前写了一个软件定时器,发现不够优化,和友好,现在重写了 soft_timer.h #ifndef _SOFT_TIMER_H_#define _SOFT_TIMER_H_#include "sys.h"typedef void (*timer_callback_function)(vo...

猎人嘻嘻哈哈的 ⋅ 15分钟前 ⋅ 0

好的资料搜说引擎

鸠摩搜书 简介:鸠摩搜书是一个电子书搜索引擎。它汇集了多个网盘和电子书平台的资源,真所谓大而全。而且它还支持筛选txt,pdf,mobi,epub、azw3格式文件。还显示来自不同网站的资源。对了,...

乔三爷 ⋅ 23分钟前 ⋅ 0

Debian下安装PostgreSQL的表分区插件pg_pathman

先安装基础的编译环境 apt-get install build-essential libssl1.0-dev libkrb5-dev 将pg的bin目录加入环境变量,主要是要使用 pg_config export PATH=$PATH:/usr/lib/postgresql/10/bin 进......

玛雅牛 ⋅ 24分钟前 ⋅ 0

inno安装

#define MyAppName "HoldChipEngin" #define MyAppVersion "1.0" #define MyAppPublisher "Hold Chip, Inc." #define MyAppURL "http://www.holdchip.com/" #define MyAppExeName "HoldChipE......

backtrackx ⋅ 53分钟前 ⋅ 0

Linux(CentOS)下配置php运行环境及nginx解析php

【part1:搭建php环境】 1.选在自己需要安装的安装包版本,wget命令下载到服务器响应目录 http://php.net/releases/ 2.解压安装包 tar zxf php-x.x.x 3.cd到解压目录执行如下操作 cd ../php-...

硅谷课堂 ⋅ 今天 ⋅ 0

Nginx服务架构初探(四):nginx服务器的rewrite功能

nginx服务器的rewrite功能 1.nginx后端服务器组的配置 1>upstream name {…} name是给服务器组限的组名 2>server address [parameters]; address为服务器地址 parame......

余温灬未存 ⋅ 今天 ⋅ 0

layer.prompt使文本框为空的情况下也能点击确定

最近一直在使用layui,但是用到弹出层layer.prompt时,如果文本框是空的话点击确定没有反应,不能向下执行。 但是我又需要空值,看看我原来的代码。 123456789 layer.prompt...

孟飞阳 ⋅ 今天 ⋅ 0

Linux普通文件压缩工具gzip、Bzip2、xz

第六章 文件压缩和打包 6.1 压缩打包介绍 Linux环境常见压缩文件类型: .zip,.gz,.bz2,.xz, .tar.gz,.tar.bz2,.tar.xz 压缩打包的目的 方便文件传输 节省磁盘空间 减少传输花费的时间 ...

弓正 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部