同步异步阻塞非阻塞杂记 1
gevent实现的协程是同步非阻塞还是异步非阻塞?
IO
是不是阻塞的和协程是没有关系的,python
本来就能支持非阻塞IO
,
比如在linux
只要用API
,更改了文件描述符的属性就可以
协程
是同步的,并不是异步的,gevent
除了协程的支持还要有比如同步非阻塞IO
才行。
nodejs
的底层的实现支持异步非阻塞IO
协程只是改变了写东西的方式,其实实际的东西是没有太大变化的,单线程的代码还是会在单线程上跑,
不过配合非阻塞IO
可以更好的做东西,golang
的协程支持多线程
同步,异步概念
1.同步就是发生调用时,一定等待结果返回,整个调用才结束;
2.异步就是发生调用后,立即返回,不等待结果返回。被调用者通过状态、通知来通知调用者,或通过回调函数处理这个调用。
同步异步与阻塞,非阻塞区别
1.阻塞/非阻塞, 它们是程序在等待消息(无所谓同步或者异步)时的状态;
2.同步/异步,是程序获得关注消息通知的机制。
同步异步与阻塞,非阻塞组合
1.同步阻塞
效率最低(日志程序)。
2.同步非阻塞
效率也不高(需要轮询)。
3.异步阻塞
一般模式线程回调。
4.异步非阻塞
IOCP。
服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种:
(1)同步阻塞IO(Blocking IO):即传统的IO模型。
(2)同步非阻塞IO(Non-blocking IO):默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLOCK。注意这里所说的NIO并非Java的NIO(New IO)库。
(3)IO多路复用(IO Multiplexing):即经典的Reactor设计模式,有时也称为异步阻塞IO,Java中的Selector和Linux中的epoll都是这种模型。
(4)异步IO(Asynchronous IO):即经典的Proactor设计模式,也称为异步非阻塞IO。
同步异步阻塞非阻塞杂记 1相关推荐
- 同步异步阻塞非阻塞杂记
版权声明:本文可能为博主原创文章,若标明出处可随便转载. https://blog.csdn.net/Jailman/article/details/78498458 gevent实现的协程是同步非阻 ...
- 异步通知是什么意思_一次相亲经历,我彻底搞懂了阻塞非阻塞、同步异步
看到标题,可能你会想,相亲跟阻塞/非阻塞,同步/异步有啥关系,这个逗b不知道在想什么东西.不要急,且听我慢慢道来 年纪大了,一回家七大姑八大姨就各种催婚,都说要给我介绍女朋友.这不,刚刚门口,我的大姨 ...
- 15分钟读懂进程线程、同步异步、阻塞非阻塞、并发并行,太实用了!
作者:Martin cnblogs.com/mhq-martin/p/9035640.html 基本概念 1 进程和线程 进程(Process): 是Windows系统中的一个基本概念,它包含着一个运 ...
- 迄今为止把同步/异步/阻塞/非阻塞/BIO/NIO/AIO讲的这么清楚的好文章(快快珍藏)...
常规的误区 假设有一个展示用户详情的需求,分两步,先调用一个HTTP接口拿到详情数据,然后使用适合的视图展示详情数据. 如果网速很慢,代码发起一个HTTP请求后,就卡住不动了,直到十几秒后才拿到HTT ...
- 同步 异步 阻塞 非阻塞概念区分
老张爱喝茶,废话不说,煮开水. 提前剧透一下:同步和非同步主要用来形容被调用线程,阻塞非阻塞用来形容主线程的. 出场人物:老张(主线程),水壶(被调用线程)两把(普通水壶,简称水壶:会响的水壶,简称响 ...
- 【面试】迄今为止把同步/异步/阻塞/非阻塞/BIO/NIO/AIO讲的这么清楚的好文章(快快珍藏)...
网上有很多讲同步/异步/阻塞/非阻塞/BIO/NIO/AIO的文章,但是都没有达到我的心里预期,于是自己写一篇出来. 常规的误区 假设有一个展示用户详情的需求,分两步,先调用一个HTTP接口拿到详情数 ...
- Socket 同步/异步 与阻塞/非阻塞区别
2019独角兽企业重金招聘Python工程师标准>>> 在网上看了很多答案,也没找到合适的,也许本文也不是合适答案:) 同步和异步关注的是消息通信机制,而阻塞非阻塞关注的是程序在等待 ...
- 异步同步、阻塞非阻塞、异步回调、线程队列和协程
今天学习了异步同步.阻塞非阻塞.异步回调.线程队列和协程 一.异步同步和阻塞非阻塞 线程的三种状态: 1.就绪 2.运行 3.阻塞 阻塞:遇到了IO操作 代码卡住 无法执行下一行 CPU会切换到 ...
- NIO详解(二): BIO 浅谈 同步 异步与阻塞 非阻塞
在我们了解Java NIO/BIO的网络通信之前,我们先了解一下常用的阻塞/非阻塞模型以及同步/异步的概念 一.阻塞和非阻塞 从简单的开始,我们以经典的读取文件的模型举例.(对操作系统而言,所有的输入 ...
- 异步/同步、阻塞/非阻塞的理解
异步/同步.阻塞/非阻塞的理解 [同步和异步] 通俗的讲: 同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式. 异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个 ...
最新文章
- linux更改程序启动时间,分享|如何改善应用程序在 Linux 中的启动时间
- 算法训练 连续正整数的和 (枚举)
- restful api与传统api的区别(方式及语法)
- Nuget包制作最佳解决方案
- c++ enum 枚举类型
- POJ1279(求多边形内核的面积)
- 漏洞:WebRTC 泄漏用户IP
- 深搜--1-n的全排列
- 简述基于软件体系结构的软件开发过程
- java替换特殊字符_Java处理特殊字符替换(正则表达式)
- JAVA学习——GUI鼠标画图交互练习
- 编译原理 自下而上分析题型
- 计算机主页为什么打不开怎么办,电脑输入192.168.1.1管理页面打不开怎么办
- Python中常见的__init__.py是什么意思?详解Python import的方式和原理
- CPU,缓存,内存,外存全解析
- LeetCode 27 移除元素 题解
- 反馈线性化类有哪些最新发表的毕业论文呢?
- 蓝桥杯第九到十二届C/C++A组省赛填空题集 (很全)
- 童星养成系统的文推荐_几部养成系列的现言宠文推荐啦,都是不错的大叔文,十分治愈哦~...
- 免费空间python_10M/S!百度网盘偷偷更新,终于实现免费不限速了?!
热门文章
- Android Studio真机调试,数据库sqllite时,Multiple dex files define Landroid/support/v4/R 问题...
- JDBC第三篇--【事务、元数据、改造JDBC工具类】
- 100 计算机网络基础知识
- Mysql(8)_存储引擎之InnoDB
- (C/C++) Link List - C 語言版本
- 关于功能图标的绘制方法!
- 将“早期版本的Windows”改名
- 现代男人养生的10点忠告
- java开启注解扫描,详解Spring框架注解扫描开启之配置细节
- 用canvas画一个刮刮卡