在Android中兩個子執行緒之間通訊

2021-09-25 03:59:15 字數 649 閱讀 7920

android中,相信主線程和子執行緒之間的通訊大家都不陌生了吧。在一次面試經歷中被問到了兩個子執行緒之間是如何進行通訊的。哎呦!這可蒙住我了。後來回家研究了下,分享給大家。

其實android中線程通訊無非就是handler和looper的操作。

一般情況下的主線程和子執行緒之間的通訊,都是通過主線程中的handler把子執行緒中的message發給主線程中的looper,或者,主線程中的handler通過post向looper中傳送乙個runnable。looper預設存在於main執行緒中。那麼子執行緒中沒有looper,該怎麼辦呢?很簡單,我們可以把looper繫結到子執行緒中,並且建立乙個handler。在另乙個執行緒中通過這個handler傳送訊息,就可以實現子執行緒之間的通訊了。

public class thread1 extends thread 

@override

public void run() {

looper.prepare();

handler1 = new handler(){

public void handlemessage(android.os.message msg) {

//這裡處理訊息

log.i("mthread", "收到訊息了:"+t

Android兩個子執行緒之間通訊

android中,相信主線程和子執行緒之間的通訊大家都不陌生了吧。在一次面試經歷中被問到了兩個子執行緒之間是如何進行通訊的。哎呦!這可蒙住我了。後來回家研究了下,分享給大家。其實android中線程通訊無非就是handler和looper的操作。一般情況下的主線程和子執行緒之間的通訊,都是通過主線程...

兩個執行緒之間的通訊。。。。。

public class demo01 catch interruptedexception e thread t2 new thread catch interruptedexception e t1.start t2.start class mytask system.out.println 1...

python將句子中兩個子串位置互換的

想要將文中所有的類似 aa citebb citecc 替換為aa cite bb cite cc 即 與 cite 互換位置 採用非貪婪匹配,邊界條件都用 來匹配即可。import sys import os import re def changefile filename p re.compi...