Java多執行緒實現的方式有四種

2021-08-28 21:05:59 字數 2051 閱讀 3304

方式1:繼承thread類的執行緒實現方式如下:

public class threaddemo01 extends thread

public void run()

public static void main(string args)

}

程式結果:

thread[main,5,main]

我是自定義的執行緒1

執行緒實現方式2:通過實現runnable介面,實現run方法,介面的實現類的例項作為thread的target作為引數傳入帶參的thread建構函式,通過呼叫start()方法啟動執行緒

public class threaddemo02 

}class mythread implements runnable

}

程式執行結果:

main

thread-0–>我是通過實現介面的執行緒實現方式!

執行緒實現方式3:通過callable和futuretask建立執行緒

a:建立callable介面的實現類 ,並實現call方法

b:建立callable實現類的實現,使用futuretask類包裝callable物件,該futuretask物件封裝了callable物件的call方法的返回值

c:使用futuretask物件作為thread物件的target建立並啟動執行緒

d:呼叫futuretask物件的get()來獲取子執行緒執行結束的返回值

public class threaddemo03 

}class ticket******ments callable

}

程式執行結果:

main

thread-0–>我是通過實現callable介面通過futuretask包裝器來實現的執行緒

執行緒實現方式4:通過執行緒池建立執行緒

public class threaddemo05{

private static int pool_num = 10; //執行緒池數量

/*** @param args

* @throws interruptedexception

*/public static void main(string args) throws interruptedexception {

// todo auto-generated method stub

executorservice executorservice = executors.newfixedthreadpool(5);

for(int i = 0; i程式執行結果:

通過執行緒池方式建立的執行緒:pool-1-thread-3

通過執行緒池方式建立的執行緒:pool-1-thread-4

通過執行緒池方式建立的執行緒:pool-1-thread-1

通過執行緒池方式建立的執行緒:pool-1-thread-5

通過執行緒池方式建立的執行緒:pool-1-thread-2

通過執行緒池方式建立的執行緒:pool-1-thread-5

通過執行緒池方式建立的執行緒:pool-1-thread-1

通過執行緒池方式建立的執行緒:pool-1-thread-4

通過執行緒池方式建立的執行緒:pool-1-thread-3

通過執行緒池方式建立的執行緒:pool-1-thread-2

executorservice、callable都是屬於executor框架。返回結果的執行緒是在jdk1.5中引入的新特徵,還有future介面也是屬於這個框架,有了這種特徵得到返回值就很方便了。

通過分析可以知道,他同樣也是實現了callable介面,實現了call方法,所以有返回值。這也就是正好符合了前面所說的兩種分類

執行callable任務後,可以獲取乙個future的物件,在該物件上呼叫get就可以獲取到callable任務返回的object了。get方法是阻塞的,即:執行緒無返回結果,get方法會一直等待。

再介紹executors類:提供了一系列工廠方法用於建立執行緒池,返回的執行緒池都實現了executorservice介面。

Java多執行緒實現的四種方式

方式1 繼承thread類的執行緒實現方式如下 public class threaddemo01 extends thread public void run public static void main string args 程式結果 thread main,5,main 我是自定義的執行緒...

JAVA多執行緒的四種實現方式

1.繼承thread 重寫run 方法,該run方法表示執行緒要完成的任務。建立執行緒物件,呼叫物件的start 方法來啟動執行緒。2.runnable介面 重寫介面中run方法。建立runable例項類的例項,並依此例項作為thread的target來建立thread物件,該執行緒物件才是真正的執...

多執行緒 四種建立方式

public class threadestablish1 start 主線程 for int i 0 i 100 i 1.建立乙個實現了thread類的子類 class subthread extends thread 注意點 如果自己手動呼叫run 方法,那麼就只是普通方法,沒有啟動多執行緒模式...