最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java 并發(fā)編程中如何創(chuàng)建線程

 更新時間:2021年03月05日 08:46:06   作者:布禾  
這篇文章主要介紹了Java 并發(fā)編程中如何創(chuàng)建線程,幫助大家更好的理解和學習使用Java,感興趣的朋友可以了解下

簡介

線程是基本的調度單位,它被包含在進程之中,是進程中的實際運作單位,它本身是不會獨立存在。一個進程至少有一個線程,進程中的多個線程共享進程的資源。

Java中創(chuàng)建線程的方式有多種如繼承Thread類、實現(xiàn)Runnable接口、實現(xiàn)Callable接口以及使用線程池的方式,線程池將在后面文章中單獨介紹,這里先介紹另外三種方式。

繼承Thread類

優(yōu)點:在run方法里可以用this獲取到當前線程。

缺點:由于Java不支持多繼承,所以如果繼承了Thread類后就不能再繼承其他類。

public class MyThread extends Thread {
 /**
  * 線程要執(zhí)行的任務
  */
 @Override
 public void run() {
  System.out.println("do something...");
 }

 public static void main(String[] args) {	
	//創(chuàng)建線程
  MyThread myThread = new MyThread();
	//啟動線程
  myThread.start();	
 }
}

實現(xiàn)Runnable接口

優(yōu)點:實現(xiàn)Runnable接口后不影響繼承其他類,以及有利于多個線程資源共享。

缺點:獲取當前線程需要調用Thread.currentThread()。

public class MyThread implements Runnable {
  /**
  * 線程要執(zhí)行的任務
  */
 @Override
 public void run() {
  System.out.println("do something...");
 }

 public static void main(String[] args) {
	//創(chuàng)建兩個線程,并指定相同的任務
	Thread thread1 = new Thread(new MyThread());
  Thread thread2 = new Thread(new MyThread());
	//啟動線程
  thread1.start();
  thread2.start();
 }
}

實現(xiàn)Callable接口

優(yōu)缺點類似于實現(xiàn)Runnable接口,但是實現(xiàn)Callable接口可以有返回值。

public class MyThread implements Callable<String> {
 /**
  * 線程要執(zhí)行的任務,并且具有返回值
  */
 @Override
 public String call() throws Exception {
  System.out.println("do something...");
  Thread.sleep(3000);
  return "我是返回值";
 }

 public static void main(String[] args) throws ExecutionException, InterruptedException {
	//創(chuàng)建異步任務
  FutureTask<String> futureTask = new FutureTask(new MyThread());
	//啟動線程
  new Thread(futureTask).start();
	//阻塞等待線程執(zhí)行完成并返回結果
  String result = futureTask.get();
  System.out.println(result);
 }
}

以上就是Java 并發(fā)編程中如何創(chuàng)建線程的詳細內容,更多關于Java 創(chuàng)建線程的資料請關注腳本之家其它相關文章!

相關文章

  • AbstractQueuedSynchronizer(AQS)鎖狀態(tài)同步和排隊管理

    AbstractQueuedSynchronizer(AQS)鎖狀態(tài)同步和排隊管理

    這篇文章主要介紹了為大家AbstractQueuedSynchronizer(AQS)鎖狀態(tài)同步和排隊管理源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • Java中對象的創(chuàng)建和銷毀過程詳析

    Java中對象的創(chuàng)建和銷毀過程詳析

    這篇文章主要介紹了Java中對象的創(chuàng)建和銷毀過程,對象的創(chuàng)建過程包括類加載檢查、內存分配、初始化零值內存、設置對象頭和執(zhí)行init方法,對象的銷毀過程由垃圾回收機制負責,文中介紹的非常詳細,需要的朋友可以參考下
    2025-02-02
  • java中BigDecimal類的構造詳解及使用

    java中BigDecimal類的構造詳解及使用

    這篇文章主要介紹了java中BigDecimal類的構造詳解及使用,Java在java.math包中提供的API類BigDecimal,用來對超過16位有效位的數(shù)進行精確的運算,需要的朋友可以參考下
    2023-07-07
  • Java 高并發(fā)的三種實現(xiàn)案例詳解

    Java 高并發(fā)的三種實現(xiàn)案例詳解

    這篇文章主要介紹了Java 高并發(fā)的三種實現(xiàn)案例詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-08-08
  • Java中的異常測試框架JUnit使用上手指南

    Java中的異常測試框架JUnit使用上手指南

    這篇文章主要介紹了Java的異常測試框架JUnit使用上手指南,JUnit是Java代碼進行單元測試中的常用工具,需要的朋友可以參考下
    2016-03-03
  • Java 11 正式發(fā)布,這 8 個逆天新特性教你寫出更牛的代碼

    Java 11 正式發(fā)布,這 8 個逆天新特性教你寫出更牛的代碼

    美國當?shù)貢r間9月25日,Oracle 官方宣布 Java 11 (18.9 LTS) 正式發(fā)布,可在生產環(huán)境中使用!這是自 Java 8 后的首個長期支持版本
    2018-09-09
  • JDK生成WebService客戶端代碼以及調用方式

    JDK生成WebService客戶端代碼以及調用方式

    WebService 是一種跨編程語言和跨操作系統(tǒng)平臺的遠程調用技術,下面這篇文章主要給大家介紹了關于JDK生成WebService客戶端代碼以及調用方式的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-08-08
  • SpringSession會話管理之Redis與JDBC存儲實現(xiàn)方式

    SpringSession會話管理之Redis與JDBC存儲實現(xiàn)方式

    本文將詳細介紹Spring Session的核心概念、特性以及如何使用Redis和JDBC來實現(xiàn)會話存儲,幫助開發(fā)者構建更加健壯和可擴展的應用系統(tǒng),希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • Java實現(xiàn)文件及文件夾的刪除

    Java實現(xiàn)文件及文件夾的刪除

    這篇文章主要為大家詳細介紹了Java實現(xiàn)文件及文件夾的刪除,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • 如何獲取springboot打成jar后的classpath

    如何獲取springboot打成jar后的classpath

    這篇文章主要介紹了如何獲取springboot打成jar后的classpath問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07

最新評論

建瓯市| 郧西县| 惠安县| 庐江县| 芒康县| 巩义市| 舟山市| 四会市| 定兴县| 本溪市| 麻城市| 吉隆县| 桐乡市| 澎湖县| 大方县| 麻城市| 耒阳市| 石门县| 临沧市| 玉田县| 乐陵市| 房山区| 凤城市| 星座| 资阳市| 西林县| 米林县| 宣化县| 鄯善县| 宝兴县| 芦溪县| 江西省| 屯留县| 交城县| 锡林郭勒盟| 炎陵县| 松滋市| 工布江达县| 郁南县| 大余县| 微博|