想必現(xiàn)在有很多小伙伴對于什么是事件驅(qū)動編程機(jī)制方面的知識都比較想要了解,那么今天小好小編就為大家收集了一些關(guān)于什么是事件驅(qū)動編程機(jī)制方面的知識分享給大家,希望大家會喜歡哦。
1.要理解事件驅(qū)動和程序,就需要與非事件驅(qū)動的程序進(jìn)行比較。實際上,現(xiàn)代的程序大多是事件驅(qū)動的,比如多線程的程序,肯定是事件驅(qū)動的。早期則存在許多非事件驅(qū)動的程序,這樣的程序,在需要等待某個條件觸發(fā)時,會不斷地檢查這個條件,直到條件滿足,這是很浪費(fèi)cpu時間的。而事件驅(qū)動的程序,則有機(jī)會釋放cpu從而進(jìn)入睡眠態(tài)(注意是有機(jī)會,當(dāng)然程序也可自行決定不釋放cpu),當(dāng)事件觸發(fā)時被操作系統(tǒng)喚醒,這樣就能更加有效地使用cpu.
2.再說什么是事件驅(qū)動的程序。一個典型的事件驅(qū)動的程序,就是一個死循環(huán),并以一個線程的形式存在,這個死循環(huán)包括兩個部分,第一個部分是按照一定的條件接收并選擇一個要處理的事件,第二個部分就是事件的處理過程。程序的執(zhí)行過程就是選擇事件和處理事件,而當(dāng)沒有任何事件觸發(fā)時,程序會因查詢事件隊列失敗而進(jìn)入睡眠狀態(tài),從而釋放cpu。
3.事件驅(qū)動的程序,必定會直接或者間接擁有一個事件隊列,用于存儲未能及時處理的事件。
轉(zhuǎn)載或者細(xì)引委用本文內(nèi)容請注熱此明來書源于芝士回答
4.事件驅(qū)動的程序的行為,完全受外部輸入的事件控制,所以,事件驅(qū)動的系統(tǒng)中,存在大量這種程序,并以事件作為主要的通信方式。
5.事件驅(qū)動的程序,還有一個最大的好處,就是可以按照一定的順序處理隊列中的事件,而這個順序則是由事件的觸發(fā)順序決定的,這一特性往往被用于保證某些過程的原子化。
6.目前windows,linux,nucleus,vxworks都是事件驅(qū)動的,只有一些單片機(jī)可能是非事件驅(qū)動的。
都是手工敲的,很辛苦的。另外,我推薦你看一下維基百科,講得很清楚,很透徹,直達(dá)本質(zhì)。
本文到此結(jié)束,希望對大家有所幫助。