博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
同步异步阻塞非阻塞杂记
阅读量:6464 次
发布时间:2019-06-23

本文共 890 字,大约阅读时间需要 2 分钟。

版权声明:本文可能为博主原创文章,若标明出处可随便转载。 https://blog.csdn.net/Jailman/article/details/78498458

是一个使用完全同步编程模型的可扩展的异步I/O框架。

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。

你可能感兴趣的文章
ClickStat业务
查看>>
DMA32映射问题
查看>>
Android内存泄露之开篇
查看>>
提高效率—编程中的技巧
查看>>
导出excel——弹出框
查看>>
高并发程序设计
查看>>
ExtJs之组件(window)
查看>>
SoapUI中如何传递cookie
查看>>
静态成员变量的初始化
查看>>
POJ 1269 Intersecting Lines(判断两直线位置关系)
查看>>
MSSQL数据库跨表和跨数据库查询方法简(转)
查看>>
spring3.0.7中各个jar包的作用总结
查看>>
Windows 10 /win10 上使用GIT慢的问题,或者命令行反应慢的问题
查看>>
SSM——查询_分页
查看>>
梯度下降(Gradient descent)
查看>>
Windows平台分布式架构实践 - 负载均衡
查看>>
如何让LinearLayout也有类似Button的点击效果?
查看>>
JAVA读取文件方法大全
查看>>
寻找最小的k个数
查看>>
CSS3中的动画效果记录
查看>>