進程 是作業系統分配資源(CPU、記憶體)的最小單位;執行緒 是 CPU 調度執行的最小單位。一個進程至少包含一條主執行緒(Java 的 main 方法),可建立多條執行緒並行執行不同任務,共享進程資源。
// 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();
}
}
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 或並發容器。ExecutorService 線程池,生產環境建議使用池化管理,避免頻繁建立/銷毀開銷。掌握多執行緒,是開發高併發、高效能 Java 應用的基石。