Java 語言級支援讓多線程開發比 C/C++ 直觀得多。本系列透過簡單範例展示多線程如何自然融入 Java 程式,讀者可快速上手編寫基礎多線程程式。
單線程程式依序執行四項無關任務:列印、檔案操作、資料庫存取、螢幕繪圖。每項任務因硬體/軟體潛在延遲皆含等待時間,導致資源利用率低、使用者等待久。
class MyClass {
static public void main(String args[]) {
printAFile();
manipulateAnotherFile();
accessDatabase();
drawPictureOnScreen();
}
}
寫信時派兒子去買郵票——兩項任務並行,互不阻塞。軟體術語稱為「多重控制線程」。
多線程非增加 CPU 能力,但能讓等待型任務(網路、資料庫、UI)並行,充分利用多核硬體。下集將介紹具體實作機制。