建立執行緒的四種方式

2021-10-07 07:04:12 字數 2836 閱讀 6989

建立執行緒的四種方式:

1、繼承thread類

定義乙個thread類的子類,重寫run方法,將相關邏輯實現,run()方法就是執行緒要執行的業務邏輯方法

建立自定義的執行緒子類物件

呼叫子類例項的star()方法來啟動執行緒

public

class

mythread

extends

thread

}

public

class

theadtest

}

執行結果:

main main

()方法執行結束

thread-

0run

()方法正在執行.

..

2、實現runnable介面

定義runnable介面實現類myrunnable,並重寫run()方法

建立myrunnable例項myrunnable,以myrunnable作為target建立thead物件,該thread物件才是真正的執行緒物件呼叫執行緒物件的start()方法

public

class

myrunnable

implements

runnable

}

public

class

runnabletest

}

執行結果:

main main

()方法執行結束

thread-

0run

()方法正在執行.

..

3、實現callable介面

建立實現callable介面的類mycallable

以mycallable為引數建立futuretask物件

將futuretask作為引數建立thread物件

呼叫執行緒物件的start()方法

public

class

mycallable

implements

callable

}

public

class

callabletest

catch

(interruptedexception e)

catch

(executionexception e)

system.out.

println

(thread.

currentthread()

.getname()

+" main()方法執行完成");

}}

執行結果:

thread-

0call

()方法執行中...

返回結果 1

main main

()方法執行完成

什麼是callable和future?

callable介面類似於runnable,但是runnable不會返回結果,並且無法丟擲返回結果的異常,而callable功能更強大一點,被執行緒執行後,可以返回值,這個返回值可以被future拿到,也就是說future可以拿到非同步執行任務的返回值。

future介面表示非同步任務,是乙個可能還沒有完成的非同步任務的結果。

所以callable用於產生結果,future用於獲取結果。

4、使用 executors 工具類建立執行緒池

executors提供了一系列工廠方法用於創先執行緒池,返回的執行緒池都實現了executorservice介面。

主要有newfixedthreadpool,newcachedthreadpool,newsinglethreadexecutor,newscheduledthreadpool,後續詳細介紹這四種執行緒池

public

class

myrunnable

implements

runnable

}

public

class

singlethreadexecutortest

system.out.

println

("執行緒任務開始執行");

executorservice.

shutdown()

;}}

執行結果:

執行緒任務開始執行

pool-

1-thread-

1 is running...

pool-

1-thread-

1 is running...

pool-

1-thread-

1 is running...

pool-

1-thread-

1 is running...

pool-

1-thread-

1 is running.

..

執行緒的run()和start()有什麼區別?

總結:呼叫start()方法可啟動執行緒並使執行緒進入就緒狀態,而run方法只是thread的乙個普通方法呼叫,還是在主線程中執行。

建立執行緒的四種方式

1.繼承於thread類,重寫run 方法 2.實現runable介面,實現裡面的run 方法 前兩種不用多說 3.使用 futuretask 實現有返回結果的執行緒,可以返回執行緒執行結果 public class test class mycallable implements callable...

建立執行緒的四種方式

class thread00 extends thread class thread01 implements runnable class thread02 implements callable 對以上三種方法進行測試 測試四種建立執行緒的方式 public class newthread 輸出...

建立執行緒的四種方式

首先我們先來了解一下測試thread中的常用方法 一 繼承thread類 二 實現runnable介面 三 實現callable介面 四 使用執行緒池建立 建立執行緒方式一 繼承thread類 繼承thread類建立執行緒的步驟為 1 新建乙個主類,然後再建立乙個類繼承thread的子類。2 重寫t...