messagequeue原理 為什么使用mq?
為什么使用mq?謝謝你邀請我回答:對不起,我不明白問題的真正含義,所以我不能回答。理解面試:Handler的工作原理是怎樣的?處理機(jī)制的工作原理:處理程序的工作流程主要包括處理程序、循環(huán)器、消息和消息
為什么使用mq?
謝謝你邀請我回答:
對不起,我不明白問題的真正含義,所以我不能回答。理解
面試:Handler的工作原理是怎樣的?
處理機(jī)制的工作原理:
處理程序的工作流程主要包括處理程序、循環(huán)器、消息和消息隊(duì)列四個(gè)部分。但是在我們的日常開發(fā)中,我們通常只使用處理程序和消息類。Message負(fù)責(zé)承載消息,其中有一個(gè)用于標(biāo)記消息的目標(biāo)、用于存儲內(nèi)容的obj以及用于分發(fā)和處理消息的處理程序。
以下是對您的具體說明:
處理程序機(jī)制由循環(huán)器和消息隊(duì)列構(gòu)成。
消息隊(duì)列:消息隊(duì)列。雖然它被稱為隊(duì)列,但實(shí)際上它的內(nèi)部存儲結(jié)構(gòu)并不是一個(gè)真正的隊(duì)列。相反,它使用單鏈表的數(shù)據(jù)結(jié)構(gòu)來存儲消息列表。主要有兩種方法:insert enqueue()和remove next()。
循環(huán)器:消息循環(huán)。消息隊(duì)列用于存儲消息,而looper用于確定無限循環(huán)中是否有新消息。如果有新消息,將對其進(jìn)行處理。如果沒有,它將是備用的。當(dāng)線程創(chuàng)建處理程序時(shí),它首先需要?jiǎng)?chuàng)建一個(gè)循環(huán)器,否則它將報(bào)告一個(gè)錯(cuò)誤:runtimeException:no looper活套準(zhǔn)備()未在此線程上調(diào)用,每個(gè)線程中只需要?jiǎng)?chuàng)建一個(gè)循環(huán)器,否則將報(bào)告錯(cuò)誤:runtimeException:每個(gè)線程只能創(chuàng)建一個(gè)循環(huán)器。
在面試中,我建議自己總結(jié)一套自己的專屬答案,并徹底理解,這樣當(dāng)我遇到這個(gè)問題時(shí),我就可以輕松回答了!