女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

多路IO復用模型和異步IO模型介紹

麥辣雞腿堡 ? 來源:盼盼編程 ? 作者:盼盼編程 ? 2023-10-08 17:21 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

多路 IO 復用模型

多路 IO 復用,有時也稱為事件驅(qū)動 IO。它的基本原理就是有個函數(shù)會不斷地輪詢所負責的所有 socket ,當某個 socket有數(shù)據(jù)到達了,就通知用戶進程。IO 復用模型的流程如圖:

圖片

當用戶進程調(diào)用了 select ,那么整個進程會被阻塞,而同時,內(nèi)核會 “監(jiān)視” 所有 select 負責的 socket ,當任何一個 socket中的數(shù)據(jù)準備好了, select 就會返回。這個時候用戶進程再調(diào)用 read 操作,將數(shù)據(jù)從內(nèi)核拷貝到用戶進程。

這個模型和阻塞 IO 的模型其實并沒有太大的不同,事實上還更差一些 因為這里需要使用兩個系統(tǒng)調(diào)用,而阻塞 IO 只調(diào)用了一個系統(tǒng)調(diào)用recvfrom,用 select 的優(yōu)勢在于它可以同時處理多個連接。

如果處理的連接數(shù)不是很高的話,使用 select/epoll Web server 定比使用多線程的阻塞 IO Web server性能更好,可能延遲還更大;select/poll 的優(yōu)勢并不是對于單個連接能處理得更快,而是在于能處理更多的連接。

異步 IO 模型

圖片

上面是異步 IO 模型。

用戶進程發(fā)起 read 操作之后,立刻就可以開始去做其他的事;而另一方面,從內(nèi)核的角度,當它收到一個異步的 read請求操作之后,首先會立刻返回,所以不會對用戶進程產(chǎn)生任何阻塞。

然后,內(nèi)核會等待數(shù)據(jù)準備完成,然后將數(shù)據(jù)拷貝到用戶內(nèi)存中,當這一切都完成之后,內(nèi)核會給用戶進程發(fā)送一個信號,返回 read 操作已完成的信息。

調(diào)用阻塞 IO 一直阻塞住對應的進程直到操作完成,而非阻塞 IO 在內(nèi)核還在準備數(shù)據(jù)的情況下會立刻返回。兩者的區(qū)別就在于同步 IO 進行 IO操作時會阻塞進程。

非阻塞 IO 在執(zhí)行 recvfrom 這個系統(tǒng)調(diào)用的時候,如果內(nèi)核的數(shù)據(jù)沒有準備好,這時候不會阻塞進程。但是當內(nèi)核中數(shù)據(jù)準備好時,recvfrom會將數(shù)據(jù)從內(nèi)核拷貝到用戶內(nèi)存中,這個時候進程則被阻塞。

而異步 IO 則不 樣,當進程發(fā)起 IO 操作之后,就直接返回,直到內(nèi)核發(fā)送一個信號,告訴進程 IO
已完成,則在這整個過程中,進程完全沒有被阻塞。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • IO
    IO
    +關注

    關注

    0

    文章

    491

    瀏覽量

    40547
  • 驅(qū)動
    +關注

    關注

    12

    文章

    1918

    瀏覽量

    86927
  • 網(wǎng)絡
    +關注

    關注

    14

    文章

    7815

    瀏覽量

    90951
  • 模型
    +關注

    關注

    1

    文章

    3520

    瀏覽量

    50420
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Linux驅(qū)動開發(fā)之IO模型介紹

    在Linux驅(qū)動開發(fā)中,應用程序通過循環(huán)讀取或者中斷的方式都會使得CPU的占用率很高。本文介紹五種IO模型,可以用來優(yōu)化文件讀寫方式,降低CPU的使用率。
    發(fā)表于 07-29 09:03 ?1014次閱讀

    Linux驅(qū)動學習筆記:異步IO

    前幾篇介紹了幾種IO模型,今天介紹另一種IO模型——異步
    發(fā)表于 06-12 16:24 ?999次閱讀

    基于多路復用模型的Netty框架

    系統(tǒng)處理請求的能力。 有了NIO之后,一個線程即可處理多個連接事件,基于多路復用模型的Netty框架,不僅降低了使用NIO的復雜度, 優(yōu)點 Netty是一款以java NIO為基礎,基于事件驅(qū)動模型支持
    的頭像 發(fā)表于 09-30 11:30 ?1055次閱讀

    IO模型以及多路復用的總結(jié)及視頻資料

    于用戶態(tài)和內(nèi)核的地址空間之間,而無論這些文件描述符是否就緒。它的開銷隨著文件描述符數(shù)量的增加而線性增加。  所以之后又出現(xiàn)了一個select和poll的增強版本epoll,此處就不做過多的介紹。  io多路復用總結(jié)
    發(fā)表于 12-18 16:04

    淺析java的IO模型

    java IO初識與Linux網(wǎng)絡IO模型簡介
    發(fā)表于 08-05 06:28

    linux下的IO模型詳解

      開門見山,Linux下的如中IO模型:阻塞IO模型,非阻塞IO模型
    發(fā)表于 10-09 16:12

    IO多路復用的幾種實現(xiàn)機制的分析

    服務器端編程經(jīng)常需要構造高性能的IO模型,常見的IO模型有四種:同步和異步的概念描述的是用戶線程與內(nèi)核的交互方式:同步是指用戶線程發(fā)起
    發(fā)表于 03-07 11:40 ?5900次閱讀
    <b class='flag-5'>IO</b><b class='flag-5'>多路復用</b>的幾種實現(xiàn)機制的分析

    網(wǎng)絡IO的弊端以及多路復用IO的優(yōu)勢

    為了講多路復用,當然還是要跟風,采用鞭尸的思路,先講講傳統(tǒng)的網(wǎng)絡 IO 的弊端,用拉踩的方式捧起多路復用 IO 的優(yōu)勢。 為了方便理解,以下所有代碼都是偽代碼,知道其表達的意思即可。
    的頭像 發(fā)表于 08-25 18:01 ?3307次閱讀
    網(wǎng)絡<b class='flag-5'>IO</b>的弊端以及<b class='flag-5'>多路復用</b><b class='flag-5'>IO</b>的優(yōu)勢

    一文詳細了解五種IO模型

    五種IO模型包括:阻塞IO、非阻塞IOIO多路復用、信號驅(qū)動
    的頭像 發(fā)表于 02-14 14:38 ?6198次閱讀
    一文詳細了解五種<b class='flag-5'>IO</b><b class='flag-5'>模型</b>

    信號驅(qū)動IO異步IO的區(qū)別

    一. 談信號驅(qū)動IO (對比異步IO來看) 信號驅(qū)動IO 對比 異步 IO進行理解 信號驅(qū)動
    的頭像 發(fā)表于 11-08 15:32 ?1503次閱讀
    信號驅(qū)動<b class='flag-5'>IO</b>與<b class='flag-5'>異步</b><b class='flag-5'>IO</b>的區(qū)別

    linux異步io框架iouring應用

    完善的異步IO(網(wǎng)絡IO、磁盤IO)機制。 在網(wǎng)絡編程中,我們通常使用epoll IO多路復用
    的頭像 發(fā)表于 11-08 15:39 ?1037次閱讀
    linux<b class='flag-5'>異步</b><b class='flag-5'>io</b>框架iouring應用

    異步IO框架iouring介紹

    提供完善的異步IO(網(wǎng)絡IO、磁盤IO)機制。 在網(wǎng)絡編程中,我們通常使用epoll IO多路復用
    的頭像 發(fā)表于 11-09 09:30 ?3876次閱讀
    <b class='flag-5'>異步</b><b class='flag-5'>IO</b>框架iouring<b class='flag-5'>介紹</b>

    IO多路復用基本概念

    一、IO多路復用基本概念 select、poll、epoll都是IO多路復用的機制。IO多路復用
    的頭像 發(fā)表于 11-10 16:34 ?1893次閱讀
    <b class='flag-5'>IO</b><b class='flag-5'>多路復用</b>基本概念

    什么是io多路復用IO多路復用的優(yōu)缺點

    IO多路復用是一種同步IO模型,它允許單個進程/線程同時處理多個IO請求。具體來說,一個進程/線程可以監(jiān)視多個文件句柄,一旦某個文件句柄就緒
    的頭像 發(fā)表于 01-18 15:48 ?2136次閱讀

    一文解讀Linux 5種IO模型

    Linux里有五種IO模型:阻塞IO、非阻塞IO多路復用IO、信號驅(qū)動式
    的頭像 發(fā)表于 11-09 11:12 ?857次閱讀
    一文解讀Linux 5種<b class='flag-5'>IO</b><b class='flag-5'>模型</b>