答:執行緒是作業系統能夠進行運算排程的最小單位,也就是一條**執行流,相當於乙個任務。本質上就是將**交給cpu去執行。
1.繼承thread類,則直接建立該物件即可建立乙個新執行緒。
public
static
void
main
(string[
] args)
static
class
thread1
extends
thread
}
2.實現runnable介面
public
static
void
main
(string[
] args)
static
class
thread2
implements
runnable
}
3.實現callable介面,可以獲取執行緒返回值
public
static
void
main
(string[
] args)
catch
(interruptedexception e)
catch
(executionexception e)
}static
class
thread3
implements
callable
}
實現介面的方法來使用執行緒是比較常用的,因為乙個類介面可以繼承多個,但是父類只能繼承乙個,所以為了類的可拓展性,實現介面的方式比較好。
執行緒具有以下狀態:
new—>新建狀態---->執行緒被建立後的狀態
runnable—>可執行狀態---->執行緒啟用start方法的狀態
blocked —>執行緒阻塞狀態---->執行緒在等待鎖釋放的狀態
waiting—>執行緒等待狀態---->執行緒在執行object.wait、thread.join、locksupport.park等方法而進行等待的狀態
timed_waiting —>執行緒在指定時間內的等待狀態,常使用sleep方法
terminated—>執行緒終止狀態
thread.stop()方法—已經被棄用,破壞了執行緒安全,因為當執行緒處於同步鎖中,該方法也能讓執行緒停止。
thread.interrupt()方法,正確的方法,不會破壞執行緒安全,當使用該方法時會返回執行緒執行完全的資料,並丟擲interruptedexception異常,但是使用這種方式需要執行緒是處於阻塞狀態,例如(執行緒處於sleep、join、wait等方法中)
使用標誌位,如果執行緒邏輯中是迴圈執行,則在run方法中增加乙個判斷,用來控制程式的終止
充分利用cpu資源
可以併發執行多個任務,節省時間
多執行緒學習
thread和runnable的區別 單繼承模式thread 而 runnable是介面 start 和run的區別 start是乙個執行緒只能啟動,run可以執行多次,並且run是呼叫當前正在執行的執行緒 wait notify object物件所具有的 sleep setpriority 同步機...
多執行緒學習
用 編輯 的多執行緒時用gcc threadtest 1.c 編譯時 一直報錯,報錯如下 tmp ccgko5iu.o 在函式 thread create 中 threadtest 1.c text 0x13b 對 pthread create 未定義的引用 threadtest 1.c text ...
多執行緒學習
簡單學習多執行緒。建立多執行緒有兩種方法。一 繼承thread類。多執行緒練習,通過繼承thread public class testthread extends thread public static void main string argsd 二 實現runnable介面。多執行緒練習。通...