」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > Java 中的線程並發

Java 中的線程並發

發佈於2024-11-19
瀏覽:269

Thread Concurrency In Java

高級 Java 中的線程並發或多線程允許多個線程並發執行,從而增強複雜應用程式的效能和回應能力。以下是其關鍵概念和實用程式的簡明細分。

Java 中多執行緒的關鍵特性:

  1. 建立線程。
  2. 執行器的執行緒管理
  3. 並發實用程式
  4. 分叉/連接框架
  5. 具有完整未來的非同步程式設計

1️⃣ 創建話題。

  • 擴充線程:透過重寫 run() 方法建立一個新執行緒。

  • 實作 Runnable:將 Runnable 實例傳遞給 Thread 物件。

  • 實作Callable:與Runnable不同,Callable允許執行緒傳回結果並處理檢查的例外狀況。

2️⃣ 使用執行器進行執行緒管理。

  • Java 的執行器框架 (java.util.concurrent.ExecutorService) 管理線程池,允許高效處理任務。

  • FixedThreadPool 和 CachedThreadPool 等執行器會建立一個可重複使用執行緒池,有效地管理它們以減少建立新執行緒的開銷。

3️⃣ 並發實用程式

  • 鎖:像 ReentrantLock 這樣的高階鎖定機制比同步方法提供了更多的靈活性,允許定時和可中斷的鎖。

  • 原子變數:java.util.concurrent.atomic 套件包含提供無鎖線程的原子類別(AtomicInteger、AtomicLong)
    安全營運。

  • 同步器:包括實用程序,例如:
    CountDownLatch:允許執行緒等待,直到其他執行緒完成
    任務。
    CyclicBarrier:在公共
    處同步固定數量的線程 障礙點。
    信號量:透過允許特定數量來控制對資源的存取
    並發線程數。

4️⃣ Fork/Join 框架

  • 1.對於分治任務,ForkJoinPool 將任務拆分為平行處理的較小子任務,這在遞歸演算法中特別有用。

5️⃣ 具有完整未來的非同步編程

  • CompletableFuture 支援非同步和非阻塞編程,允許連結和組合複雜工作流程的任務。

使用線程範例

主類別呼叫2個不同的線程

public class ThreadConcurrence {
    public static void main(String[] args) {
        // There is 2 type you have to call thread method
                //1- Extend Thread class
                //1- Implements Runnable class
        // why Implement concept is introduce here
                // because in java multiple thread dose not support that's so why implement class will introduce
                // ex- when u extend (inherit) base call, then at that time this call can not extend another Thread class.
        int n = 10;
        for (int i = 0; i 



線程1--(擴充線程)

public class Thread1 extends Thread{
    //If you are extend Thread class then you  most be used run()
    // Because when you start a thread then run() automatically call and run
    public void run(){
        try {
            System.out.println("Thread1 is running now....");
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
}

Thread2--(實作 Runnable)

public class Thread2 implements Runnable {
    //IF you are implement thread Then run() will be executed.
    // Because when you start a thread then run() automatically call and run
    public void run(){
        try {
            System.out.println("Thread2 is running.......");
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
}

結論 :

透過利用這些工具和框架,高階 Java 多執行緒能夠建立可無縫處理並發任務的可擴展、高效能應用程式。

如需更多見解,請隨時提及您的 Linkedin 和 GitHub 以獲取深入的範例和程式碼範例!如果您需要任何具體調整,請告訴我。

Linkedin:https://www.linkedin.com/in/pravanjan-17p/

GitHub:https://github.com/Prabhanjan-17p

版本聲明 本文轉載於:https://dev.to/pravanjan17p/thread-concurrency-in-java-idb?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3