日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

同步异步阻塞非阻塞杂记

發布時間:2024/4/13 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 同步异步阻塞非阻塞杂记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
版權聲明:本文可能為博主原創文章,若標明出處可隨便轉載。 https://blog.csdn.net/Jailman/article/details/78498458

gevent實現的協程是同步非阻塞還是異步非阻塞?

gevent是一個使用完全同步編程模型的可擴展的異步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。






總結

以上是生活随笔為你收集整理的同步异步阻塞非阻塞杂记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。