天天看點

【Android開發】線程與消息處理-實作多線程

在現實生活中,很多事情是同時進行的,例如,我們可以一邊看書,一邊喝咖啡;而計算機則可以一邊放音樂,一邊列印文檔。對于這種可以同時進行的任務,可以用線程來表示,每個線程完成一個任務,并與其它線程同時執行,這種機制被稱為多線程。下面介紹如何建立、開啟、休眠和停止線程。

1.建立線程

兩種方法

a.通過thread類的構造方法建立線程

在android中,可以使用thread類提供的以下構造方法來建立線程

該構造方法的參數runnable可以通過建立一個runnable類的對象并重寫其run()方法來實作,例如,要建立一個名為thread的線程,可以使用下面的代碼:

b.通過實作runnable接口建立線程

在android中,還可以通過實作runnable接口來建立線程。實作runnable接口的文法格式如下:

public class classname object implements runnable

當一個類實作runnable接口之後,還需要實作其run()方法,在run()方法中,可以編寫要執行的操作的代碼。

例如,要建立一個實作了runnable接口的activity,可以使用下面的代碼:

2.開啟線程

建立線程對象後,還需要開啟線程,線程才能執行。thread類提供了start()方法用于開啟線程,其文法格式入下:

start()

例如,存在一個名為thread的線程,如果向開啟該線程,可以使用下面的代碼:

3.線程的休眠

線程的休眠就是讓線程暫停一段時間後再次執行。同java一樣,在android中,也可以使用thread類的sleep()方法讓線程休眠指定的時間。sleep()方法的文法格式如下:

sleep(long time)

其中參數time指定休眠的時間,機關為毫秒

例如,想要線程休眠1秒鐘,可以使用下面的代碼:

4.中斷線程

當需要中斷指定的線程時,可以使用thread類提供的interrupt()方法來實作。使用interrupt()方法可以向指定的線程發送一個中斷請求,并将該線程标記為中斷狀态。interrupt()方法的文法格式如下:

interrupt()

例如,存在一個名稱為thread的線程,如果想中斷該線程,可以使用下面的代碼;

另外,由于線程執行wait()、join()或sleep()方法時,線程的中斷狀态将被清除并抛出interruptedexception,是以,如果想線上程中執行了wait()、join()或sleep()方法時中斷線程,就需要使用一個boolean型的标記變量來記錄線程的中斷狀态,并通過該标記變量來控制循環的執行與停止。例如,通過名為isinterrupt的boolean型變量來标記線程的中斷,關鍵代碼如下:

轉載請注明出處:http://blog.csdn.net/acmman/article/details/46336965

繼續閱讀