java創建線程,java創建線程池的四種方式

本文目錄一覽:

java創建線程的幾種方式,了解一下

第一種方式:使用Runnable介面創建線程

第二種方式:直接繼承Thread類創建對象

使用Runnable介面創建線程

1.可以將CPU,代碼和數據分開,形成清晰的模型

2.線程體run()方法所在的類可以從其它類中繼承一些有用的屬性和方法

3.有利於保持程序的設計風格一致

直接繼承Thread類創建對象

1.Thread子類無法再從其它類繼承(java語言單繼承)。

2.編寫簡單,run()方法的當前對象就是線程對象,可直接操作。

在實際應用中,幾乎都採取第一種方式

Java多線程初學者指南(3):使用Runnable介面創建線程

上一篇 Java多線程初學者指南( ) 用Thread類創建線程

實現Runnable介面的類必須使用Thread類的實例才能創建線程 通過Runnable介面創建線程分為兩步

將實現Runnable介面的類實例化

 建立一個Thread對象 並將第一步實例化後的對象作為參數傳入Thread類的構造方法

最後通過Thread類的start方法建立線程

下面的代碼演示了如何使用Runnable介面來創建線程

package mythread;public class MyRunnable implements Runnable{    public void run()    {        System out println(Thread currentThread() getName());    }    public static void main(String[] args)    {        MyRunnable t  = new MyRunnable();        MyRunnable t  = new MyRunnable();        Thread thread  = new Thread(t   MyThread );        Thread thread  = new Thread(t );        thread setName( MyThread );        thread start();        thread start();    }}

上面代碼的運行結果如下

lishixinzhi/Article/program/Java/gj/201311/27466

java創建線程有幾種方式

java創建線程的方式有三種

第一種是繼承Thread類 實現方法run() 不可以拋異常 無返回值

第二種是實現Runnable介面 實現方法run() 不可以拋異常 無返回值

第三種是實現CallableT介面,介面中要覆蓋的方法是 public T call() 注意:此方法可以拋異常,而前兩種不能 而且此方法可以有返回值

第三種如何運行呢 Callable介面在util.concurrent包中,由線程池提交

import java.util.concurrent.*;

ExecutorService e = Executors.newFixedThreadPool(10); 參數表示最多可以運行幾個線程

e.submit(); 這個裡面參數傳 實現Callable介面那個類的對象

java怎麼創建一個線程

Java線程類也是一個object類,它的實例都繼承自java.lang.Thread或其子類。 可以用如下方式用java中創建一個線程:

Tread thread = new Thread();

執行該線程可以調用該線程的start()方法:

thread.start();

編寫線程運行時執行的代碼有兩種方式:一種是創建Thread子類的一個實例並重寫run方法,第二種是創建類的時候實現Runnable介面。接下來我們會具體講解這兩種方法:

創建Thread的子類

創建Thread子類的一個實例並重寫run方法,run方法會在調用start()方法之後被執行。例子如下:

public class MyThread extends Thread {

   public void run(){

     System.out.println(“MyThread running”);

   }

}

可以用如下方式創建並運行上述Thread子類

MyThread myThread = new MyThread();

myTread.start();

一旦線程啟動後start方法就會立即返回,而不會等待到run方法執行完畢才返回。就好像run方法是在另外一個cpu上執行一樣。當run方法執行後,將會列印出字元串MyThread running。

實現Runnable介面

第二種編寫線程執行代碼的方式是新建一個實現了java.lang.Runnable介面的類的實例,實例中的方法可以被線程調用。下面給出例子:

public class MyRunnable implements Runnable {

   public void run(){

    System.out.println(“MyRunnable running”);

   }

}

為了使線程能夠執行run()方法,需要在Thread類的構造函數中傳入 MyRunnable的實例對象。示例如下:

Thread thread = new Thread(new MyRunnable());

thread.start();

當線程運行時,它將會調用實現了Runnable介面的run方法。上例中將會列印出」MyRunnable running」。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/194634.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-02 14:40
下一篇 2024-12-02 14:40

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29
  • Java 8 Group By 會影響排序嗎?

    是的,Java 8中的Group By會對排序產生影響。本文將從多個方面探討Group By對排序的影響。 一、Group By的概述 Group By是SQL中的一種常見操作,它…

    編程 2025-04-29

發表回復

登錄後才能評論