Android執行緒管理之Thread使用總結

2021-10-02 13:01:39 字數 1383 閱讀 8759

今天先來總結一下thread使用

new

一旦被例項化之後就處於new狀態

runnable

呼叫了start函式之後就處於runnable狀態

running

執行緒被cpu執行 呼叫run函式之後 就處於running狀態

blocked

呼叫join()、sleep()、wait()使執行緒處於blocked狀態

dead

執行緒的run()方法執行完畢或被中斷或被異常退出,執行緒將會到達dead狀態

run() :執行緒執行時所執行的**

start() :用於啟動執行緒

sleep() : sleep(long millis)//執行緒休眠,交出cpu,讓cpu去執行其他的任務,然後執行緒進入阻塞狀態,sleep方法不會釋放鎖

yield() :使當前執行緒交出cpu,讓cpu去執行其他的任務,但不會是執行緒進入阻塞狀態,而是重置為就緒狀態,yield方法不會釋放鎖

join() :join(long millis)等待執行緒終止,直白的說 就是發起該子執行緒的執行緒 只有等待該子執行緒執行結束才能繼續往下執行

wait() :交出cpu,讓cpu去執行其他的任務,讓執行緒進入阻塞狀態,同時也會釋放鎖

interrupt() :中斷執行緒,自stop函式過時之後,我們通過interrupt方法和isinterrupted()方法來停止正在執行的執行緒,注意只能中斷已經處於阻塞的執行緒

getid() : 獲取當前執行緒的id

getname()/setname() :獲取和設定執行緒的名字

getpriority()/setpriority() :獲取和這是執行緒的優先順序 一般property用1-10的整數表示,預設優先順序是5,優先順序最高是10,優先順序高的執行緒被執行的機率高

currentthread() :靜態函式獲取當前執行緒

第一種:繼承thread類

public static void main(string args)
public static class countthread extends thread

@override

public void run()

}

第二種 :實現runnable介面

public static void main(string args)
public static class countrunnable implements runnable

}

JAVA多執行緒之Runnable和Thread比較

在我們開發的過程中常常會碰到多執行緒的問題,對於多執行緒的實現方式主要有兩種 實現runnable介面 繼承thread類。對於這兩種多執行緒的實現方式也是有著一些差異。既然實現了多執行緒那必然離不開管理這些執行緒,當問題比簡單時乙個或者幾個執行緒就ok了,也涉及不到效率問題。一旦執行緒數量多起來的...

android 程序和執行緒管理

程序和執行緒的概念 程序 程式的執行例項。執行緒 cpu排程基本單位。activity啟動的時候,啟動乙個主線程,兩個binder執行緒。主線程實如何產生的?zygoteinit啟動,經由一系列呼叫後最終zygote為activity建立主線程 activitythread.用於binder的哪些執...

android 程序和執行緒管理

程序和執行緒的概念 程序 程式的執行例項。執行緒 cpu排程基本單位。activity啟動的時候,啟動乙個主線程,兩個binder執行緒。主線程實如何產生的?zygoteinit啟動,經由一系列呼叫後最終zygote為activity建立主線程 activitythread.用於binder的哪些執...