在多線程編程這塊,我們經(jīng)常要使用Handler(處理),Thread(線程)和Runnable這三個(gè)類,那么他們之間的關(guān)系你是否弄清楚了呢?
首先說(shuō)明Android的CPU分配的最小單元是線程,Handler一般是在某個(gè)線程里創(chuàng)建的,因而Handler和Thread就是相互綁定的,一一對(duì)應(yīng)。
而Runnable是一個(gè)接口,Thread是Runnable的子類。所以說(shuō),他倆都算一個(gè)進(jìn)程。
HandlerThread顧名思義就是可以處理消息循環(huán)的線程,他是一個(gè)擁有Looper的線程,可以處理消息循環(huán)。
與其說(shuō)Handler和一個(gè)線程綁定,不如說(shuō)Handler是和Looper一一對(duì)應(yīng)的。
Handler是溝通Activity 與Thread/runnable的橋梁。而Handler是運(yùn)行在主UI線程中的,它與子線程可以通過(guò)Message對(duì)象來(lái)傳遞數(shù)據(jù)
1、首先第一種啟用方法是通過(guò)繼承Thread類,并改寫(xiě)run方法來(lái)實(shí)現(xiàn)一個(gè)線程
public class MyThread extends Thread { //繼承Thread類,并改寫(xiě)其run方法 private final static String TAG = "My Thread ===> "; public void run(){ Log.d(TAG, "run"); for(int i = 0; i<100; i++) { Log.e(TAG, Thread.currentThread().getName() + "i = " + i); } } }