400-650-7353
您所在的位置:首頁 > IT干貨資料 > java > 【Java基礎(chǔ)知識】如何創(chuàng)建Java線程

【Java基礎(chǔ)知識】如何創(chuàng)建Java線程

  • 來源:Java培訓(xùn)干貨資料
  • 2020-03-27 17:51:51
  • 閱讀()
  • 分享
  • 手機端入口

多線程指的是一個程序運行時,會包含多個線程同時進(jìn)行。

Java創(chuàng)建線程有三種基本的方法,分別是繼承Thread類,實現(xiàn)Runnable接口(推薦的實現(xiàn)方式),實現(xiàn)Callable接口實現(xiàn)Java多線程。

1. 繼承Thread類,然后重寫Thread 的run()方法,基本語法格式為public MyThread extends Thread { @Override public void run() { // 需要在線程中運行的邏輯代碼塊 } }, 創(chuàng)建線程具體方法為 MyThread myThread = new MyThread(),創(chuàng)建好線程之后,需要調(diào)用myThread.start()方法啟動線程,之后run()方法里面的邏輯才可以在線程中運行,如果不使用start()方法啟動線程,而是直接使用線程對象調(diào)用myThread.run()方法,則run()方法里面的程序不屬于子線程,還是屬于主線程的;當(dāng)run()方法執(zhí)行結(jié)束之后,線程結(jié)束被銷毀。同一個線程對象不可以start()多次,無論這個線程當(dāng)前處于什么狀態(tài)都是不可以重新start()的。

2. 重寫Runnable接口,重寫接口里面的run()方法,實現(xiàn)方式為public MyThread implements Runnable { @Override public void run() { // 需要在線程中運行的邏輯代碼塊 }},之后的實現(xiàn)和繼承Thread類似,都是使用線程對象的start()方法進(jìn)行啟動,但是一般推薦這種實現(xiàn)方式,因為Java是屬于單繼承的,如果繼承了Thread類,就不可以繼承其他的類,會有一定的局限性。

Java線程的創(chuàng)建

3. 實現(xiàn)Callable接口實現(xiàn)多線程,實現(xiàn)該接口之后,需要重寫call()方法, 實現(xiàn)方式為public class CallableDemo implements Callable { @Override public String call() throws Exception { // 需要都在線程中運行的邏輯代碼塊 return “線程結(jié)束返回的信息” } },call()方法會有返回值,可以返回線程執(zhí)行結(jié)束之后需要返回的一些信息,并且可以拋出一些異常信息,創(chuàng)建線程的方法可以new一個Thread并且傳入一個FutureTask的對象,之后調(diào)用線程對象的start()方法啟動線程。當(dāng)線程執(zhí)行完成之后,可以使用FutureTask對象的get()方法獲取到線程的返回值。

在java中創(chuàng)建線程時可以給線程設(shè)置自己的名稱,使用setName( name )進(jìn)行設(shè)置,通過設(shè)置名稱,可以很好的區(qū)分每一個線程。也可以通過setPriority( priority )設(shè)置線程的優(yōu)先級,優(yōu)先級越高,所獲得的CPU資源越多,線程執(zhí)行的幾率就越大。線程的優(yōu)先級為1-10,超出這個范圍,程序則會拋出異常,默認(rèn)值為5。可以通過isAlive()方法判斷線程是否處于活躍狀態(tài)。

 

文章“【Java基礎(chǔ)知識】如何創(chuàng)建Java線程”已幫助

>>本文地址:http://hqfphsz.com/zhuanye/2020/48546.html

THE END  

聲明:本站稿件版權(quán)均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉(zhuǎn)載。

1 您的年齡

2 您的學(xué)歷

3 您更想做哪個方向的工作?

獲取測試結(jié)果
  • 大前端大前端
  • 大數(shù)據(jù)大數(shù)據(jù)
  • 互聯(lián)網(wǎng)營銷互聯(lián)網(wǎng)營銷
  • JavaJava
  • Linux云計算Linux
  • Python+人工智能Python
  • 嵌入式物聯(lián)網(wǎng)嵌入式
  • 全域電商運營全域電商運營
  • 軟件測試軟件測試
  • 室內(nèi)設(shè)計室內(nèi)設(shè)計
  • 平面設(shè)計平面設(shè)計
  • 電商設(shè)計電商設(shè)計
  • 網(wǎng)頁設(shè)計網(wǎng)頁設(shè)計
  • 全鏈路UI/UE設(shè)計UI設(shè)計
  • VR/AR游戲開發(fā)VR/AR
  • 網(wǎng)絡(luò)安全網(wǎng)絡(luò)安全
  • 新媒體與短視頻運營新媒體
  • 直播帶貨直播帶貨
  • 智能機器人軟件開發(fā)智能機器人
 

快速通道fast track

近期開班時間TIME