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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Swoole同步/异步/阻塞/非阻塞的理解

發(fā)布時間:2024/9/19 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Swoole同步/异步/阻塞/非阻塞的理解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

說明總結(jié)

同步異步:說的是kernel返回處理信息的方法策略

針對程序中碰到耗時任務(wù)時,傳遞給Kernel? Kernel處理信息的方式? 有異步api函數(shù)是異步?沒的話是同步

IO立即返回:主函數(shù)中(task函數(shù)) 傳遞任務(wù)信息給Kernel,Kernels收到(onTask函數(shù)),這個耗時任務(wù)我完成之后我會再告訴你的(onFinish) 這是異步

IO完成之后返回:這個是同步 就是一個return即可!

堵塞非堵塞:說的是應(yīng)用程序執(zhí)行耗時任務(wù)的狀態(tài)?

針對的是程序中碰到耗時任務(wù)主程序的運行會不會wait?

不wait就是非堵塞? wait就是堵塞? 是說的一個程序的一個任務(wù)點狀態(tài)!

例子

小張喜歡喝咖啡,同時養(yǎng)了好多狗; 要完成的事情:小張煮咖啡然后喝咖啡 1.小張: application 2.咖啡壺:kernel 內(nèi)核 3.煮咖啡:耗時任務(wù) 4.小狗大黑:查詢信息流 send() rev() 5.小狗大黃:查詢信息流 send() rev() 6.小狗大白大紅:查詢信息流 send() rev() 同步阻塞: 小張派大黑去看咖啡煮好沒,大黑等咖啡煮開了(同步)才回來, 小張也一直在等待(堵塞) ;同步非阻塞: 小張派大黃去看咖啡煮好沒,大黃看了一眼就回來了,過了一會,大黃再去看看咖啡煮好沒(異步), 小張啥也沒有干,還是一直等著(同步)異步非阻塞: 小張派大白和大紅去看咖啡煮好沒,煮咖啡是task,小張就開始看電視了(非堵塞) 大白和大紅到了廚房后,大白就回來告訴小張,大紅已經(jīng)到廚房啦(onTask異步); 過了一會咖啡煮好了,大紅回到客廳告訴小張(onFinish)異步阻塞: 小張派大白和大紅去看咖啡煮好沒,煮咖啡是task,小張心很急非要一直等著 就開始等著信息(堵塞) 大白和大紅到了廚房后,大白就回來告訴小張,大紅已經(jīng)到廚房啦,咖啡煮著呢 (onTask異步); 過了一會咖啡煮好了,大紅回到客廳告訴小張(onFinish) 小張這才放松了,繼續(xù)干其他的了!感覺有些焦慮啊!

圖示

?

從上面的圖可以看出來,其實不管是任何模式,內(nèi)核的處理方式都是一樣的,都是 1. wait for data(等待數(shù)據(jù)); 2. copy data from kernel to user(拷貝數(shù)據(jù)到用戶層)。 而產(chǎn)生這三種模式的差別在于中間使用的api函數(shù)不同。

https://blog.csdn.net/qq_32725491/article/details/78679414

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。