多執行緒學習

2021-09-11 23:47:34 字數 1517 閱讀 4488

答:執行緒是作業系統能夠進行運算排程的最小單位,也就是一條**執行流,相當於乙個任務。本質上就是將**交給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介面。多執行緒練習。通...