首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Java 多執行緒核心概念與實作範例詳解

     編輯:程式設計綜合問答

什麼是多執行緒?

進程 是作業系統分配資源(CPU、記憶體)的最小單位;執行緒 是 CPU 調度執行的最小單位。一個進程至少包含一條主執行緒(Java 的 main 方法),可建立多條執行緒並行執行不同任務,共享進程資源。

生活化比喻:QQ 進程

  • 啟動 QQ → 建立 QQ 進程,分配記憶體、CPU。
  • 進程內包含:發送檔案執行緒、接收檔案執行緒、發送文字執行緒…
  • 多執行緒讓你「一邊傳檔、一邊聊天、一邊語音」同時進行。

Java 實作多執行緒兩種主流方式

方式一:繼承 Thread 類別

// 1. 定義執行緒任務
class SendFileMessage extends Thread {
    private File file;
    public SendFileMessage(String path) { this.file = new File(path); }
    @Override public void run() { /* 發送檔案邏輯 */ }
}

class ReceiveMessage extends Thread {
    @Override public void run() { /* 接收訊息邏輯 */ }
}

// 2. 主程式啟動
public class ThreadMain {
    public static void main(String[] args) {
        new SendFileMessage("abc.txt").start();  // 呼叫 start() 而非 run()
        new ReceiveMessage().start();
    }
}

方式二:實作 Runnable 介面(推薦,支援多重繼承)

class Task implements Runnable {
    @Override public void run() { /* 任務邏輯 */ }
}

public class Main {
    public static void main(String[] args) {
        Thread t1 = new Thread(new Task(), "Thread-A");
        Thread t2 = new Thread(new Task(), "Thread-B");
        t1.start(); t2.start();
    }
}

關鍵點總結

  • 啟動執行緒必須呼叫 start(),直接呼叫 run() 只是普通方法呼叫,不會開啟新執行緒。
  • 共享資源(如集合、變數)需注意執行緒安全,使用 synchronized、Lock 或並發容器。
  • Java 5+ 提供 ExecutorService 線程池,生產環境建議使用池化管理,避免頻繁建立/銷毀開銷。

掌握多執行緒,是開發高併發、高效能 Java 應用的基石。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved