在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

什么是阻塞和非阻塞?

學益得智能硬件 ? 來源:學益得智能硬件 ? 2024-03-25 10:04 ? 次閱讀

什么是阻塞和非阻塞?我們就用管道的讀寫來舉例子。

如果沒聽過管道,就把他理解成文件就行。

一個程序打開管道,并且往管道里面寫入數據;

intmain()
{
intfd=open("fifo",O_WRONLY);
if (-1 == fd)
{
    perror("open");
}

char buf[32] = {0};
scanf("%s", buf);

if (write(fd, buf, strlen(buf)) == -1)
{
    perror("write");
}

    return 0;
}
另一個程序打開管道,從管道里面讀取數據。
int main()
{
intfd=open("fifo",O_RDONLY);
    if (-1 == fd)
    {
        perror("open");
    }
    
charbuf[32]={0};
    
    if (read(fd, buf, sizeof(buf)) == -1)
    {
        perror("write");
    }
    
    return 0;
}
默認情況下,用open打開管道是阻塞的模式,也就是說,如果管道沒有數據,程序一直停在 read 函數這里,直到管道里面有數據,把它讀出來。

創建一個管道,運行程序,現象就是這樣的,程序此時阻塞在 read 函數。

如果通過寫進程往管道里面寫入數據,read能立馬把數據讀出來。

open函數還給我們提供了非阻塞的模式,加上這個選項,運行程序的時候,即使管道里面沒有數據,程序也不會停在 read 函數上,繼續向下執行。

這兩個現象,就是阻塞和非阻塞。

最后,放上百科的一段解釋,大家還有什么見解,歡迎在評論區交流。
阻塞和非阻塞指的是調用者(程序)在等待返回結果(或輸入)時的狀態。
阻塞時,在調用結果返回前,當前線程會被掛起,并在得到結果之后返回。
非阻塞時,如果不能立刻得到結果,則該調用者不會阻塞當前線程。
因此對應非阻塞的情況,調用者需要定時輪詢查看處理狀態。


審核編輯:劉清

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

    關注

    0

    文章

    24

    瀏覽量

    8251

原文標題:什么是阻塞和非阻塞

文章出處:【微信號:學益得智能硬件,微信公眾號:學益得智能硬件】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    Verilog語言中阻塞阻塞賦值的不同

    來源:《Verilog數字系統設計(夏宇聞)》 阻塞阻塞賦值的語言結構是Verilog 語言中最難理解概念之一。甚至有些很有經驗的Verilog 設計工程師也不能完全正確地理解:何時使用
    的頭像 發表于 08-17 16:18 ?6632次閱讀

    Verilog阻塞阻塞原理分析

    Verilog阻塞阻塞原理分析在Verilog語言最難弄明白的結構中“阻塞賦值”要算一個。甚至是一些很有經驗的工程師也不完全明白“
    發表于 11-23 12:02

    【分享】Verilog中阻塞阻塞語句

    同了在第一個clk上升沿到來時,由于b的值未知,賦給c之后,c也為未知值;緊接著,把a的值給b,由于a的值已經給出,所以,結束之后,a、b的值相同,c為x。綜合之后,生成兩級移位寄存器。 關于阻塞
    發表于 11-03 20:26

    fpga基礎篇(一):阻塞阻塞賦值

    `阻塞阻塞賦值首先從名字上理解,阻塞賦值即賦值沒完成,后邊的語句將無法執行,阻塞剛好與其相
    發表于 04-05 09:53

    同步與異步,阻塞阻塞的區別是什么

    同步與異步,阻塞阻塞的區別
    發表于 01-26 06:12

    阻塞阻塞賦值的區別是什么?

    本文通過Verilog事件處理機制,詳細討論了阻塞阻塞賦值的區別、聯系及其應用示例。
    發表于 05-10 06:59

    深入理解阻塞阻塞賦值

    這是一個很好的學習阻塞阻塞的資料,對于FPGA的學習有很大幫助。
    發表于 04-22 11:00 ?11次下載

    深入分析verilog阻塞阻塞賦值

    學verilog 一個月了,在開發板上面寫了很多代碼,但是始終對一些問題理解的不夠透徹,這里我們來寫幾個例子仿真出阻塞阻塞的區別
    發表于 02-11 03:23 ?1554次閱讀

    《Linux設備驅動開發詳解》第8章、Linux設備驅動中的阻塞阻塞IO

    《Linux設備驅動開發詳解》第8章、Linux設備驅動中的阻塞阻塞IO
    發表于 10-27 11:35 ?9次下載
    《Linux設備驅動開發詳解》第8章、Linux設備驅動中的<b class='flag-5'>阻塞</b>與<b class='flag-5'>非</b><b class='flag-5'>阻塞</b>IO

    從I/O的阻塞阻塞、I/O處理的單線程與多線程角度探討服務器模型

    這里探討的服務器模型主要指的是服務器端對I/O的處理模型。從不同維度可以有不同的分類,這里從I/O的阻塞阻塞、I/O處理的單線程與多線程角度探討服務器模型。
    的頭像 發表于 01-08 16:13 ?7272次閱讀

    FPGA的視頻教程之Verilog中阻塞阻塞的詳細資料說明

    本文檔的主要內容詳細介紹的是FPGA的視頻教程之Verilog中阻塞阻塞的詳細資料說明。
    發表于 03-26 17:16 ?2次下載
    FPGA的視頻教程之Verilog中<b class='flag-5'>阻塞</b>與<b class='flag-5'>非</b><b class='flag-5'>阻塞</b>的詳細資料說明

    時序邏輯中的阻塞阻塞

    Verilog HDL的賦值語句分為阻塞賦值和阻塞賦值兩種。阻塞賦值是指在當前賦值完成前阻塞其他類型的賦值任務,
    的頭像 發表于 03-15 13:53 ?3314次閱讀

    阻塞阻塞通信的區別 阻塞阻塞應用場景

    阻塞通信(Blocking Communication):當進行阻塞通信時,調用者在發起一個I/O操作后會被阻塞,直到該操作完成返回才能繼續執行后續代碼。
    的頭像 發表于 06-15 17:32 ?6683次閱讀

    網絡IO模型:阻塞阻塞

    阻塞 IO 模型 在Linux ,默認情況下所有的 socket 都是阻塞的,一個典型的讀操作流程如圖所示。 阻塞阻塞的概念描述的是用戶
    的頭像 發表于 10-08 17:16 ?1167次閱讀
    網絡IO模型:<b class='flag-5'>阻塞</b>與<b class='flag-5'>非</b><b class='flag-5'>阻塞</b>

    socket編程中的阻塞阻塞

    在網絡編程中, socket 是一個非常重要的概念,它提供了一個抽象層,使得開發者可以不必關心底層的網絡通信細節。 socket 編程中的阻塞阻塞模式是兩種不同的操作方式,它們對程序的響應性
    的頭像 發表于 11-01 16:13 ?666次閱讀
    主站蜘蛛池模板: 人人搞人人干 | 免费大片a一级一级 | 中文字幕乱码人成乱码在线视频 | 人人干人人干人人干 | 国产精品看片 | 成人免费淫片95视频观看网站 | 在线观看亚洲成人 | 天天干天天拍天天操 | 四虎最新紧急入口 | 欧洲无线区一二区 | 免费一级毛片视频 | www午夜视频 | 日本v片免费一区二区三区 日本www.色 日本wwwwww | 老头天天吃我奶躁我的动图 | 2021精品综合久久久久 | 欧美精品高清在线xxxx | 日本高清在线3344www | 狠狠色噜噜狠狠狠狠888奇米 | 伊人久久大线蕉香港三级 | 狠狠色狠狠色综合 | 日韩美女影院 | 激情婷婷在线 | 欧美精品hdvideosex | 天天视频天天爽 | 日本黄色美女视频 | 天天射天天怕 | 欧美第一网站 | 国产2021成人精品 | 色婷婷六月 | 亚洲久久久 | ts人妖在线| 夜色sese | 精品乱码一区二区三区四区 | 五月天婷亚洲 | 国产亚洲欧美日韩俺去了 | 黄 色 毛片免费 | 天天射天天射天天射 | 男女爱爱视频免费 | 视频一本大道香蕉久在线播放 | 美国一级毛片片aa久久综合 | 热久久久 |