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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

异步与同步IO

發布時間:2023/12/10 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 异步与同步IO 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 異步IO
    調用一個異步IO函數接收數據時,不管有沒有數據,該函數都會立即返回。調用異步IO函數時候要指定一個接收數據的緩沖區,還要指定一個回調函數

  • 非阻塞IO和異步IO區別

  • 非阻塞IO:不停地調用IO函數檢查數據是否到來,如果數據到來,就要卡在IO函數把數據從內核緩沖區復制到用戶緩沖區,然后IO函數才能返回
  • 異步IO: 不需要不停的調用IO函數檢查數據是否到來,只需要調用1次。內核檢查到數據的到來,內核負責把數據復制到指定緩沖區(復制期間完全不會卡住應用程序的執行流程),然后內核負責通知數據到來
  • 同步IO

  • 系統函數select和poll用的就是同步IO,需要調用2個函數才能獲取數據。

  • 先調用select函數,判斷是否有數據(該函數只能判斷是否有數據,不能讀取數據)
  • 如果沒有數據就卡在那等
  • 如果有數據就select返回,之后調用recvfrom函數去取數據。取數據涉及數據從內核空間復制到用戶空間,所以復制數據時還是要卡著
  • 優點:IO復用(accept到多個客戶端socket可以放在一起)
  • Reactor模式:IO復用+異步方法使用非阻塞調用(回調函數+數據緩沖區)

    總結

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

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