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