日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

java dll is多线程_Java实现多线程--四种方法

發(fā)布時(shí)間:2025/4/16 java 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java dll is多线程_Java实现多线程--四种方法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1 /**

2 *?第一種3 *?繼承thread類 重寫 run方法4 * 調(diào)用start方法,啟動(dòng)線程5 *@authorsunshine6 */

7

8 /**

9 * 第二種實(shí)現(xiàn)runnable接口,重寫run方法10 *?接口實(shí)現(xiàn)類的實(shí)例作為target參數(shù),傳入帶參的構(gòu)造方法,調(diào)用start方法啟動(dòng)線程11 *@authorsunshine12 */

13

14 /**

15 *?第三種通過Callable和FutureTask實(shí)現(xiàn)線程16 * 1:創(chuàng)建Callable類的實(shí)現(xiàn)類,實(shí)現(xiàn)call方法17 * 2:創(chuàng)建Callable實(shí)現(xiàn)類的實(shí)現(xiàn),用FutureTask來包裝實(shí)現(xiàn)的對(duì)象18 * 3:將FutureTask對(duì)象作為target參數(shù)傳遞給Thread構(gòu)造方法19 * 4:調(diào)用start方法,啟動(dòng)線程20 *@authorsunshine21 */

22

23 /**

24 *?第四種--通過線程池25 *?ExecutorService是Java中對(duì)線程池定義的一個(gè)接口26 * 1:創(chuàng)建類,實(shí)現(xiàn)runnbale接口27 * 2:設(shè)置線程數(shù)量28 * 3:根據(jù)線程數(shù)量創(chuàng)建線程執(zhí)行器29 * 4:執(zhí)行器,執(zhí)行線程30 * 5:關(guān)閉線程池31 *32 * 這個(gè)方法和直接實(shí)現(xiàn)Runable比33 * 這個(gè)方法 實(shí)現(xiàn)Runable接口34 * 然后實(shí)例化對(duì)象,將參數(shù)傳遞給線程執(zhí)行器,進(jìn)行執(zhí)行35 *@authorsunshine36 */

37

38 ------------------第一種:通過繼承Thread類---------

39 packagecom.www.thread;40

41 /**

42 * 第一種43 * 繼承thread類 重寫 run方法44 * 調(diào)用start方法,啟動(dòng)線程45 *@authorsunshine46 */

47 public class Thread1ByExtendsThread extendsThread{48 49 ?? ?//重寫run方法

50 ?? ?public voidrun(){51 ?? ??? ?//在這里 獲取當(dāng)前線程的名字

52 System.out.println(Thread.currentThread().getName());53 }54 55 ?? ?public? static voidmain(String[]? args){56 ?? ??? ?Thread1ByExtendsThread thread1 = newThread1ByExtendsThread();57 ?? ??? ?thread1.setName("線程1--通過實(shí)現(xiàn)Thread類");58 ?? ??? ?//啟動(dòng)線程

59 thread1.start();60 System.out.println(Thread.currentThread().toString());61 }62 }63

64

65

66 ? ??? ?------------------第二種:通過實(shí)現(xiàn)Runnablle接口---------

67 packagecom.www.thread;68

69 /**

70 * 第二種實(shí)現(xiàn)runnable接口,重寫run方法71 * 接口實(shí)現(xiàn)類的實(shí)例作為target參數(shù),傳入帶參的構(gòu)造方法,調(diào)用start方法啟動(dòng)線程72 *@authorsunshine73 */

74 public classThread2ByImplRunable{75   public static voidmain(String[] ?args){76     Thread t = new Thread(newMyThread());77     t.start();78   }79 }80

81 class MyThread implementsRunnable{82   @Override83   public voidrun() {84     System.out.println("通過實(shí)現(xiàn)Runnbale接口創(chuàng)建的線程"+Thread.currentThread().getName());85   }86 }87

88

89

90

91 ? ??? ?------------------第三種:通過實(shí)現(xiàn)CallAble接口和FutureTask包裝器---------

92 packagecom.www.thread;93

94 importjava.util.concurrent.Callable;95 importjava.util.concurrent.FutureTask;96

97 /**

98 * 第三種通過Callable和FutureTask實(shí)現(xiàn)線程99 * 1:創(chuàng)建Callable類的實(shí)現(xiàn)類,實(shí)現(xiàn)call方法100 * 2:創(chuàng)建Callable實(shí)現(xiàn)類的實(shí)現(xiàn),用FutureTask來包裝實(shí)現(xiàn)的對(duì)象101 * 3:將FutureTask對(duì)象作為target參數(shù)傳遞給Thread構(gòu)造方法102 * 4:調(diào)用start方法,啟動(dòng)線程103 *@authorsunshine104 */

105 public classThread3ByCallableAndFutureTask {106  public static voidmain(String[] ?args){107   Callable callAble = new CallImpl();108   FutureTask task = new FutureTask(callAble);109   Thread t = newThread(task);110   System.out.println(Thread.currentThread().getName());111   t.start();112   }113 }114

115 class CallImpl implements Callable{116   @Override117   public Object call() throwsException {118   System.err.println(Thread.currentThread().getName()+"我是通過實(shí)現(xiàn)callable" +

119   "接口通過FutureTask包裝器來實(shí)現(xiàn)線程");120   return null;121 }122 }123

124

125

126

127

128 ? ??? ?------------------第四種:通過線程池---------

129 packagecom.www.thread;130

131 importjava.util.concurrent.Executor;132 importjava.util.concurrent.ExecutorService;133 importjava.util.concurrent.Executors;134

135 /**

136 * 第四種--通過線程池137 * ExecutorService是Java中對(duì)線程池定義的一個(gè)接口138 * 1:創(chuàng)建類,實(shí)現(xiàn)runnbale接口139 * 2:設(shè)置線程數(shù)量140 * 3:根據(jù)線程數(shù)量創(chuàng)建線程執(zhí)行器141 * 4:執(zhí)行器,執(zhí)行線程142 * 5:關(guān)閉線程池143 *144 * 這個(gè)方法和直接實(shí)現(xiàn)Runable比145 * 這個(gè)方法 實(shí)現(xiàn)Runable接口146 * 然后實(shí)例化對(duì)象,將參數(shù)傳遞給線程執(zhí)行器,進(jìn)行執(zhí)行147 *@authorsunshine148 */

149 public classThread4ByThreadPool {150 ?? ?public static? int POOL_NUM = 5;//定義最大線程數(shù)為5

151 ?? ?public static voidmain(String[]? args){152 ?? ??? ?ExecutorService service =Executors.newFixedThreadPool(POOL_NUM);153 ?? ??? ?for(int i = 0; i

161 class MyThread4 implementsRunnable{162 @Override163 ?? ?public voidrun() {164 ?? ??? ?System.out.println("通過線程池創(chuàng)建的線程"+Thread.currentThread().getName());165 }166 167 }168

169

《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的java dll is多线程_Java实现多线程--四种方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。