java dll is多线程_Java实现多线程--四种方法
1 /**
2 *?第一種3 *?繼承thread類 重寫 run方法4 * 調用start方法,啟動線程5 *@authorsunshine6 */
7
8 /**
9 * 第二種實現runnable接口,重寫run方法10 *?接口實現類的實例作為target參數,傳入帶參的構造方法,調用start方法啟動線程11 *@authorsunshine12 */
13
14 /**
15 *?第三種通過Callable和FutureTask實現線程16 * 1:創建Callable類的實現類,實現call方法17 * 2:創建Callable實現類的實現,用FutureTask來包裝實現的對象18 * 3:將FutureTask對象作為target參數傳遞給Thread構造方法19 * 4:調用start方法,啟動線程20 *@authorsunshine21 */
22
23 /**
24 *?第四種--通過線程池25 *?ExecutorService是Java中對線程池定義的一個接口26 * 1:創建類,實現runnbale接口27 * 2:設置線程數量28 * 3:根據線程數量創建線程執行器29 * 4:執行器,執行線程30 * 5:關閉線程池31 *32 * 這個方法和直接實現Runable比33 * 這個方法 實現Runable接口34 * 然后實例化對象,將參數傳遞給線程執行器,進行執行35 *@authorsunshine36 */
37
38 ------------------第一種:通過繼承Thread類---------
39 packagecom.www.thread;40
41 /**
42 * 第一種43 * 繼承thread類 重寫 run方法44 * 調用start方法,啟動線程45 *@authorsunshine46 */
47 public class Thread1ByExtendsThread extendsThread{48 49 ?? ?//重寫run方法
50 ?? ?public voidrun(){51 ?? ??? ?//在這里 獲取當前線程的名字
52 System.out.println(Thread.currentThread().getName());53 }54 55 ?? ?public? static voidmain(String[]? args){56 ?? ??? ?Thread1ByExtendsThread thread1 = newThread1ByExtendsThread();57 ?? ??? ?thread1.setName("線程1--通過實現Thread類");58 ?? ??? ?//啟動線程
59 thread1.start();60 System.out.println(Thread.currentThread().toString());61 }62 }63
64
65
66 ? ??? ?------------------第二種:通過實現Runnablle接口---------
67 packagecom.www.thread;68
69 /**
70 * 第二種實現runnable接口,重寫run方法71 * 接口實現類的實例作為target參數,傳入帶參的構造方法,調用start方法啟動線程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("通過實現Runnbale接口創建的線程"+Thread.currentThread().getName());85 }86 }87
88
89
90
91 ? ??? ?------------------第三種:通過實現CallAble接口和FutureTask包裝器---------
92 packagecom.www.thread;93
94 importjava.util.concurrent.Callable;95 importjava.util.concurrent.FutureTask;96
97 /**
98 * 第三種通過Callable和FutureTask實現線程99 * 1:創建Callable類的實現類,實現call方法100 * 2:創建Callable實現類的實現,用FutureTask來包裝實現的對象101 * 3:將FutureTask對象作為target參數傳遞給Thread構造方法102 * 4:調用start方法,啟動線程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()+"我是通過實現callable" +
119 "接口通過FutureTask包裝器來實現線程");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中對線程池定義的一個接口138 * 1:創建類,實現runnbale接口139 * 2:設置線程數量140 * 3:根據線程數量創建線程執行器141 * 4:執行器,執行線程142 * 5:關閉線程池143 *144 * 這個方法和直接實現Runable比145 * 這個方法 實現Runable接口146 * 然后實例化對象,將參數傳遞給線程執行器,進行執行147 *@authorsunshine148 */
149 public classThread4ByThreadPool {150 ?? ?public static? int POOL_NUM = 5;//定義最大線程數為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("通過線程池創建的線程"+Thread.currentThread().getName());165 }166 167 }168
169
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的java dll is多线程_Java实现多线程--四种方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python爬音乐评论生成词云图_pyt
- 下一篇: java swing 树_Java Sw