今天先來總結一下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的哪些執...