建立執行緒的幾種方式

2022-07-15 14:27:15 字數 1272 閱讀 5851

建立執行緒有四種方式:

1.繼承thread類

public

class mythread00 extends

thread

}}

public

static

void

main(string args)

}

2.實現runnable介面

public

class mythread01 implements

runnable

}}

public

static

void

main(string args)

}

3.通過futuretask來建立

public

class callablethread implements callable

private

void

dosomething()

}

public

static

void

main(string args)

catch

(exception e)

}

4. 通過執行緒池來建立

public

static

void

main(string args)

};threadpool.submit(task);

threadpool.shutdown();

}

可用性排序:

執行緒池 > futuretask > runnable > thread

1、使用繼承thread的方式,意味著該類無法繼承其他的類,這樣是非常不便利的,所以實現runnable介面要優於繼承thread的方式。

2、futuretask本質上和直接實現runnable介面是一樣的,但是futuretask可以通過get方法獲取到返回值,所以要優於直接實現runnable介面的。

3、執行緒池要優於前面幾種,在專案開發的時候是主要使用執行緒池來建立執行緒。

3.1、前面幾種建立執行緒都是有建立執行緒、銷毀執行緒的過程,非常耗費資源,

而執行緒池執行完執行緒不會銷毀,而是回到執行緒池成為空閒狀態給下乙個物件使用,避免頻繁建立和銷毀執行緒。

3.2、前面幾種方式沒有辦法控制住在程式當中的建立的執行緒數量,這樣非常不可控,極易造成記憶體溢位,系統崩潰。

建立執行緒的幾種方式

thread,runnable,callable runnable和callable的區別是,1 callable規定的方法是call runnable規定的方法是run 2 callable的任務執行後可返回值,而runnable的任務是不能返回值得 3 call方法可以丟擲異常,run方法不可以...

建立執行緒的幾種方式

class a int operator int n void foo int x int main 6 lambda表示式 thread t7 a f,a,8,w 傳遞a的拷貝的成員函式給子執行緒 thread t8 a f,a,8,w 傳遞a的位址的成員函式給子執行緒 futurefu asyn...

建立執行緒的方式 執行緒建立到底有幾種方式?

在網上搜尋執行緒建立的集中方式,大約都是多的三種或者四種,我們看下jdk的原始碼怎麼說的?原始碼中說的建立執行緒有兩種方式類thread和介面runable 網上第三種 實現callable介面,結合futuretask建立執行緒,這種方式我們檢視原始碼也可以看出它實際上也屬於實現runable介面...