Hasor 同步事件

2018-10-07 09:49 更新

同步事件,同步事件是指當(dāng)主流程引發(fā)事件時(shí),是否阻塞主流程執(zhí)行,等待所有事件監(jiān)聽器都執(zhí)行完畢之后在恢復(fù)主流程的執(zhí)行。同步調(diào)用的好處是相當(dāng)于在不動(dòng)原有代碼的情況下通過事件監(jiān)聽器的方式可以動(dòng)態(tài)的增減業(yè)務(wù)邏輯代碼。下面就同步事件的特點(diǎn)加以詳細(xì)說明

Hasor 同步事件

同步特點(diǎn):

  • 主流程的調(diào)用等待事件執(zhí)行完畢。

根據(jù)執(zhí)行事件監(jiān)聽器線程模型的不同還可以分為:

  • 獨(dú)享線程
  • 共享線程

獨(dú)享線程,指的是當(dāng) Hasor 開始執(zhí)行事件監(jiān)聽器時(shí),使用一個(gè)全新的線程去執(zhí)行監(jiān)聽器。引發(fā)這種事件執(zhí)行的方式是:

EventContext eventContext = ...
eventContext.fireSyncEventWithEspecial(EventName, ...);


共享線程,指的是當(dāng) Hasor 開始執(zhí)行事件監(jiān)聽器時(shí),使用當(dāng)前線程執(zhí)行監(jiān)聽器。引發(fā)這種事件執(zhí)行的方式是:

EventContext eventContext = ...
eventContext.fireSyncEvent(EventName, ...);


注意事項(xiàng):

  • 獨(dú)享線程下,如果大量的事件拋出,可能會(huì)因?yàn)轭l繁的線程切換而導(dǎo)致性能下降。
  • 因此獨(dú)享線程,僅當(dāng)您有需要時(shí)在使用,因?yàn)闊o論是共享線程還是獨(dú)享,對(duì)于同步調(diào)用來說結(jié)果是一樣的都要消耗等待時(shí)間。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)