libevent的非同步怎麼理解?

時間 2021-06-01 03:42:20

1樓:wuxinliulei

本質上來講libevent應該是同步的,因為如果看到底層封裝的select和epoll就會發現,裡面仍然是個while迴圈,在不停的詢問,是否準備就緒,

而非同步同步IO的主要區別就是,應用發起乙個 IO 操作以後,不等待核心 IO 操作的完成,等核心完成 IO 操作以後會通知應用程式,這其實就是同步和非同步最關鍵的區別,同步必須等待或者主動的去詢問 IO 是否完成,顯然select和epoll是同步的。

另外本身Reactor模式就是同步的模式不是嗎?

2樓:落拓

libevent本身是乙個Reactor,是同步的。但libevent的bufferevent是用Reactor實現了乙個Proactor,所以libevent又是非同步的

3樓:乙隻小菜雞

libevent是對select epoll poll kqueue等的封裝。它會根據你的系統自動選擇相應的底層實現。比如最新的linux應該就是epoll

如果你理解底層的select或者epoll。你會發現它其實是同步的。有乙個while迴圈,等待事件觸發條件。滿足條件則呼叫相應的callback函式。

因此本質上還是同步的。不過長了乙個非同步的臉

執行緒同步 非同步 與 I O同步 非同步 中的同步 非同步描述的是同乙個概念麼?

純果樂 I O應該是阻塞和非阻塞。同步非同步阻塞非阻塞,是兩組不同的概念。非阻塞和同步完全可以並存,比如select,poll,epoll等 快樂領讀 同步IO 指,你乙個請求下去,要等待返回,才能做下一步。執行緒同步是說,2個執行緒一起幹活的時候,是要配合好的,不能各自忙各自的,使用synchro...

非同步電機和同步電機中的 非同步 與 同步 指的是什麼?

小夜的花豆 交流電機分為兩種 1 感應電機 非同步電機 簡單理解的話,非同步的理解其實可以用能量守恆原則去解釋。輸入三相交流電的定子線圈形成旋轉磁場,拖動 鼠籠式轉子轉動。拖的永遠趕不上拉的。2 同步電機 也按照上面的理解,輸入三相交流電的定子線圈產生旋轉磁場,但是轉子不是普通的轉子啦。而是磁鐵磁鐵...

非同步序列通訊怎麼識別字元邊界?

小雷孫 具體看你用什麼協議,協議的文件怎麼規範的 實際沒有哪個協議,傳送方一直出不停,讓接收方隨緣收吧要麼規定起始標誌,要麼規定位元率並且起始有電平保持時間作為標誌對於要求準確傳輸的,一定有包頭尾標誌 校驗 應答,對於不要求準確,要求效率的,比如 usb 的同步傳輸,或者 UDP,傳送方只是拼命傳送...