創(chuàng)建線程的四種方式
1. 創(chuàng)建線程有四種方式
繼承 Thread 類(lèi);
實(shí)現(xiàn) Runnable 接口;
實(shí)現(xiàn) Callable 接口;
使用 Executors 工具類(lèi)創(chuàng)建線程池
2. 繼承Thread類(lèi)
2.1 實(shí)現(xiàn)步驟
定義一個(gè)Thread類(lèi)的子類(lèi);
重寫(xiě)run方法,將相關(guān)邏輯實(shí)現(xiàn),run()方法就是線程要執(zhí)行的業(yè)務(wù)邏輯方法;
創(chuàng)建自定義的線程子類(lèi)對(duì)象;
調(diào)用子類(lèi)實(shí)例的star()方法來(lái)啟動(dòng)線程。
2.2 運(yùn)行結(jié)果
main main()方法執(zhí)行結(jié)束
Thread-0 run()方法正在執(zhí)行...
3. 實(shí)現(xiàn) Runnable 接口
3.1 具體步驟
定義Runnable接口實(shí)現(xiàn)類(lèi)MyRunnable,并重寫(xiě)run()方法;
創(chuàng)建MyRunnable實(shí)例myRunnable,以myRunnable作為target創(chuàng)建Thead對(duì)象,該Thread對(duì)象才是真正的線程對(duì)象;
調(diào)用線程對(duì)象的start()方法。
3.2 執(zhí)行結(jié)果
main main()方法執(zhí)行完成
Thread-0 run()方法執(zhí)行中...
4. 實(shí)現(xiàn) Callable 接口
4.1 具體步驟
創(chuàng)建實(shí)現(xiàn)Callable接口的類(lèi)myCallable;
以myCallable為參數(shù)創(chuàng)建FutureTask對(duì)象;
將FutureTask作為參數(shù)創(chuàng)建Thread對(duì)象,調(diào)用線程對(duì)象的start()方法。
4.2 執(zhí)行結(jié)果
Thread-0 call()方法執(zhí)行中...
返回結(jié)果 1
main main()方法執(zhí)行完成
5. 使用 Executors 工具類(lèi)創(chuàng)建線程池
5.1 簡(jiǎn)介
Executors提供了一系列工廠方法用于創(chuàng)先線程池,返回的線程池都實(shí)現(xiàn)了ExecutorService接口。
主要有newFixedThreadPool,newCachedThreadPool,newSingleThreadExecutor,newScheduledThreadPool,后續(xù)詳細(xì)介紹這四種線程池。
5.2 示例代碼
5.3 執(zhí)行結(jié)果
線程任務(wù)開(kāi)始執(zhí)行
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...
更多關(guān)于“Java培訓(xùn)”的問(wèn)題,歡迎咨詢千鋒教育在線名師。千鋒已有十余年的培訓(xùn)經(jīng)驗(yàn),課程大綱更科學(xué)更專(zhuān)業(yè),有針對(duì)零基礎(chǔ)的就業(yè)班,有針對(duì)想提升技術(shù)的好程序員班,高品質(zhì)課程助力你實(shí)現(xiàn)java程序員夢(mèng)想。