首页
/
每日頭條
/
生活
/
異步非阻塞模式
異步非阻塞模式
更新时间:2026-05-07 11:43:17

異步非阻塞模式(五分鐘捋清同步)1

前言

重大新聞預報:您的假期已經不足!!!

國慶的最後一天,還是娛樂娛樂,發一篇閱讀性的文章吧~~

這是一遍短小的閱讀性文章,内容簡明扼要的展開:同步、異步、阻塞、非阻塞、并發、并行的概念。讓我們在繁忙的工作之餘,讀點不那麼幹貨,卻又誠意滿滿的小短文吧~

正文

一切的開始,讓我們從一個小故事出發:(故事靈感來自互聯網)

一個小故事

故事:小A燒開水。

出場人物:小A

出場道具:普通水壺(放在煤氣竈上的那種,為了方便簡稱:水壺);會響的水壺(水燒開了會響的那種,簡稱:響壺)。

故事目的:小A要拿開水泡咖啡

小A為了實現目的,指定了4個計劃:

1、用水壺燒水,并且站在煤氣竈旁邊,啥事不幹,兩眼直勾勾的盯着水壺,等水燒開。燒開後就去泡咖啡。-同步阻塞

假設燒水和泡咖啡是在同一個線程中執行。

2、仍然用水壺煮水,不過此時不再傻傻得站在那裡看水開沒開,而是去玩局LOL,每當自己死了,就過來看看水開了沒有。如果水開了就去泡咖啡。-同步非阻塞

假設這裡玩LOL,是另一個線程運行的。

3、動用響壺燒水,仍然站在煤氣竈旁邊,不過此時不兩眼直勾勾的盯着壺了,而是聽響,因為響壺水開時會用響聲通知小A。-異步阻塞

4、在計劃3的基礎上,小A不站在煤氣竈旁邊了,而是去玩局LOL,等聽到響壺的聲音提醒後,再去跑咖啡。-異步非阻塞

有了上邊的故事鋪墊,我們再來看一看概念

同步:

同步這個詞在很多場合下都會被使用,如果單從字面意思來看:相同的步驟。但是在編程的領域裡講,字面意思就不那麼準确了。

對于編程領域來說,同步就是發起一個請求,直到請求返回結果之後,才進行下一步操作。簡單來說,同步就是必須一件事一件事的做,等前一件做完了,才能做下一件事。

例子:此種模式很常見,比如我發起一個網絡請求查詢一個人的身份證,然後根據身份證查看這個人的詳細信息。那麼我查詢詳細信息的操作需要等待查詢身份證的操作,那麼此時查詢身份證的操作就是一個同步操作。

異步:

異步很明顯是與同步相對,二者的區别在于是否需要等待某操作的返回結果。簡單來說,我們還是一個網絡請求,如果我們此時不需要依賴這個請求的結果就能進行後續操作,那麼此時這個網絡請求就是一個異步操作。

當一個異步操作發出後,調用者在沒有得到結果之前,可以繼續執行後續操作。這就是異步。

同步和異步的區别:

二者的區别還是很明顯的:請求發出後,是否需要等待請求結果,才能繼續執行其他操作。

阻塞

阻塞的概念往往伴随這線程。阻塞一般是指:在調用結果返回之前,當前線程會被挂起。調用線程隻有在得到結果之後才會被喚醒執行後續的操作。

非阻塞

那麼非阻塞,毫無疑問是阻塞的反向操作。非阻塞式的調用指:在結果沒有返回之前,該調用不會阻塞住當前線程。

是不是感覺阻塞/非阻塞和同步/異步有異曲同工的地方?

其實,這兩者存在本質的區别,面向的對象是不同的。

- 阻塞/非阻塞:進程/線程需要操作的數據如果尚未就緒,是否妨礙了當前進程/線程的後續操作。

  • 同步/異步:數據如果尚未就緒,是否需要等待數據結果。

并發和并行

二者的區分度非常的高,就在于四個字:是否同時。

并發:當有多個線程在操作時,如果系統隻有一個CPU,操作系統隻能把CPU運行時間劃分成若幹個時間段,再将時間段分配給各個線程執行,在一個時間段的快速的切換不同的線程代碼運行。

并行:當系統有多個CPU時,可以存在當一個CPU執行一個線程時,另一個CPU可以執行另一個線程,兩個線程互不搶占CPU資源,可以同時進行。

舉個小例子

小A吃飯吃到一半,電話來了,小A一直到吃完了以後才去接。即不支持并發也不支持并行

小A吃飯吃到一半,電話來了,小A停了下來接了電話,接完後繼續吃飯。支持并發

小A吃飯吃到一半,電話來了,小A一邊打電話一邊吃飯。支持并行

尾聲

文章到此就結束,不知道這幾個概念解釋的還清楚麼。希望能對各位小夥伴有些幫助吧~

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
銀手镯怎麼辨别真假
銀手镯怎麼辨别真假
看印記,标準銀的印記是S925或者是9.25、925印記,足銀的印記是S990。看色澤,銀手镯多呈微帶黃的銀白色,呈柔和的金屬光澤,時間久了會氧化為暗的黃白色。掂重量,銀的密度為10.53g/cm³,用手掂無墜手感。純銀手镯擲地有聲,無彈力。成色越低,聲音越低,且聲音越尖越高而帶韻。若為鉛、錫質地,...
2026-05-07
蒼鹭的體長多少厘米
蒼鹭的體長多少厘米
雄性蒼鹭的體長為75-105.2厘米,雌性蒼鹭的體長為75-100厘米。雄性蒼鹭體重942-1825g,雌性蒼鹭體重1030-1750g。蒼鹭是鳥綱、鹭科、鹭屬的一種涉禽,也是鹭屬的模式種。其頭、頸、腳和嘴均甚長,因而身體顯得細瘦。雄性蒼鹭嘴峰106-127毫米,雌性110-130毫米。雄性蒼鹭翅長...
2026-05-07
支付寶金秋消費節翻一翻紅包一天最多可以翻多少次
支付寶金秋消費節翻一翻紅包一天最多可以翻多少次
近日支付寶上開啟的金秋消費節活動,大家獲得了多少紅包呢?本次活動支付寶上線的紅包獲取方法還是比較多的,如果大家參與就可以赢紅包,比如說翻一翻紅包,很多人也想問下,翻一翻紅包一天最多可以翻多少次呢?如果大家想了解,下面就和小編來看看吧。支付寶金秋消費節翻一翻紅包一天最多可以翻多少次?每日翻卡上限是20...
2026-05-07
豬肉藍色章是什麼
豬肉藍色章是什麼
豬肉藍色章為健康的公豬肉,而紅色章指的是健康的母豬肉,藍色章子的肉質一般都會嫩一點,而蓋紅章的肉質一般都會老一點。蓋有圓形的印章就代表檢驗的豬肉是合格的,可以出售和食用。豬肉上的印章是能吃的,印章是用食用色素做成,可以食用,對人體不存在危害,印章藍色液體是食品藍檢驗标記專用液,是符合食品衛生要求的可...
2026-05-07
鹌鹑蛋和雞蛋哪個熱量高一些 鹌鹑蛋和什麼一起吃好
鹌鹑蛋和雞蛋哪個熱量高一些 鹌鹑蛋和什麼一起吃好
鹌鹑蛋和雞蛋是生活中比較常見的兩種食物,它們的吃法比較多,營養價值高,适量食用對身體有一定好處,很多人都會吃鹌鹑蛋和雞蛋。相對比而言,鹌鹑蛋的熱量比雞蛋的熱量要高一點,不過也相差不大。鹌鹑蛋和雞蛋哪個熱量高一些鹌鹑蛋比雞蛋的熱量稍高。鹌鹑蛋和雞蛋的熱量非常相似,每100克鹌鹑雞蛋的熱量約為160卡路...
2026-05-07
Copyright 2023-2026 - www.tftnews.com All Rights Reserved