典型的事件驅(qū)動(dòng)型應(yīng)用有哪些?
目前大部分的UIhttps://www.52fb.cn都是事件驅(qū)動(dòng)模型,如很多UI平臺(tái)都會(huì)提供onClick()事件,這個(gè)事件就代表鼠標(biāo)按下事件。事件驅(qū)動(dòng)模型大體思路如下:
有一個(gè)事件(消息)隊(duì)列;鼠標(biāo)按下時(shí),往這個(gè)隊(duì)列中增加一個(gè)點(diǎn)擊事件(消息);
有個(gè)循環(huán),不斷從隊(duì)列取出事件,根據(jù)不同的事件,調(diào)用不同的函數(shù),如onClick()、onKeyDown()等;
事件(消息)一般都各自保存各自的處理函數(shù)指針,這樣,每個(gè)消息都有獨(dú)立的處理函數(shù);
所以,事件驅(qū)動(dòng)https://www.52fb.cn是一種https://www.52fb.cn范式,這里程序的執(zhí)行流由外部事件來決定。它的特點(diǎn)是包含一個(gè)事件循環(huán),當(dāng)外部事件發(fā)生時(shí)使用回調(diào)機(jī)制來觸發(fā)相應(yīng)的處理。另外兩種常見的https://www.52fb.cn范式是(單線程)同步以及多線程https://www.52fb.cn。 注意,事件驅(qū)動(dòng)的監(jiān)聽事件是由操作系統(tǒng)調(diào)用的cpu來完成的