- Java并發編程深度解析與實戰
- 譚鋒(Mic)
- 543字
- 2022-05-10 18:39:13
1.4 在Java中如何使用多線程
在Java中實現線程的方式有很多:繼承Thread類、實現Runnable接口、使用ExecutorService線程池、使用Callable/Future實現帶有返回值的多線程,等等。因此,在Java中開發一個多線程應用非常簡單,本節將介紹具體方法
1.4.1 實現Runnable接口創建線程
Runnable是聲明一個線程的接口,使用方法如下。


注意:線程是通過thread.start()來啟動的,線程啟動后,會異步執行RunnableThreadExample中的run()方法。
1.4.2 繼承Thread類創建線程
Thread是一個類,可以直接繼承該類來創建線程,使用方法如下。

Runnable和Thread的區別在于,前者是接口,后者是類。如果當前需要實現線程的類已經集成了另外一個類,就無法再通過集成Thread類來實現線程,只能通過Runnable接口來完成。
Thread類也實現了Runnable接口,即一個線程實例。啟動線程的方法仍然是通過Thread類的start()實例方法來完成的。
1.4.3 實現Callable接口并創建帶返回值的線程
在有些場景中,我們可能需要讓一個異步執行的任務在執行完成后返回一個結果。而前面使用的線程中,run()方法是一個void修飾的無返回值的方法,很顯然無法達到我們的要求。因此在Java中提供了Callable和Future來創建有返回值的線程,實現代碼如下。


從上述代碼中可以看到,Callable接口提供了一個帶有返回值的call()方法,接著定義了一個FutureTask,來表示一個獲取未來執行結果的任務,并使用Thread線程來執行,最后通過futureTask.get()方法來獲得執行結果。
這種方式并不是目前最好的選擇,在后續章節中筆者會詳細說明它的原理及最佳實踐方案。
推薦閱讀
- AngularJS入門與進階
- Expert Android Programming
- Emgu CV Essentials
- Modern C++ Programming Cookbook
- Web Developer's Reference Guide
- Visual Basic程序設計全程指南
- Keil Cx51 V7.0單片機高級語言編程與μVision2應用實踐
- 零基礎C語言學習筆記
- Learning Zimbra Server Essentials
- Web程序設計與架構
- 計算機軟件項目實訓指導
- 陪孩子像搭積木一樣學編程:Python真好玩+Scratch趣味編程(全2冊)
- Web 2.0策略指南
- INSTANT Eclipse Application Testing How-to
- VB語言程序設計實驗教程