事件驅動就是多執行緒加死迴圈嗎?

時間 2021-05-11 00:46:43

1樓:青石向晚

不是。事件驅動就是將要執行的任務封裝成事件去觸發。你可以只有乙個執行緒,然後準備乙個事件佇列,執行緒依次執行佇列中的任務。事實上6.0之前的 Redis 就是這麼幹的。

2樓:老虎說

事件驅動是迴圈,但其實不是真正意義的死迴圈,他有退出迴圈條件的,比如收到系統的kill訊號,另外還有迴圈監聽系統事件的發生時候是同步阻塞的,沒有收到系統訊號的情況下是被系統掛起了,不會一直搶占CPU

3樓:

看問題不能抓表相,要抓本質。

Event-driver architecture is a software architecture paradigm promoting the production, detection, consumption of and reaction to events.

事件驅動的本質是排隊和狀態機管理,被你管理的物件又很多很多的激發源,在不同的情況下你要做不同的處理,為了讓你的狀態機維護的方便,你把所有引起你更改的事情(可以是函式呼叫,中斷,Socket訊息等等)全部抽象為Event,然後把Event排隊,這樣你每次處理更新狀態的時候,就不需要擔心還有其他同步的處理來更改你的狀態。這和是否是多執行緒和死迴圈,都只有弱關聯關係。

事件驅動是忙等待嗎?為什麼比多執行緒更好?

事件驅動和忙等待沒有什麼關係,比如中斷就是一種事件驅動,儘管也可以用忙等待處理。從與外部互動來看,事件驅動是一種自然的對映方式,相比起執行緒而言,更適合用於處理大量的 隨機的事件,避免引入大量執行緒可能導致的額外開銷,以及同步等問題。但相對執行緒這種順序的處理方式,事件驅動需要維護額外的狀態來對不確...

關於多執行緒程式設計和CPU多核多執行緒的關係?

佐佐浪 具體到你的例子,修改優先順序和修改時間片是無法達到這個效果的。你需要做的是把你的計算部分做成並行的。單獨乙個執行緒是達不到你要的效果的。 棒子先生 首相我們了解下為什麼需要用到4核,這是由於不能盲目的提高CPU的主頻和頻寬,這樣會產生各種實際很難處理的問題,比如溫度飆公升等。舉例來說我們需要...

如何學會多執行緒工作?

dboy 你假設自己漂亮的大腦是個多核CPU,是很天真的。它不是,你是乙個人,有七情六慾,不是計算器,計算資源可以N等分水平擴充套件,但人腦不是,注意力是做好工作的必備資源,如果注意力可以隨意切分,就不會叫注意力了,太Sunny如果不能匯聚到一點是煮不開水的,光束再多也沒用。絕不多個主要目標齊頭並進...