void foo() { /* 耗時運算 */ }
int main() {
foo(); // 主執行緒阻塞,直到 foo 返回
bar(); // 必須等待 foo 結束才執行
}
DWORD WINAPI ThreadFunc(LPVOID) { foo(); return 0; }
int main() {
HANDLE h = CreateThread(NULL, 0, ThreadFunc, NULL, 0, NULL);
// 主執行緒立即繼續
bar(); // 與 foo 並行執行
WaitForSingleObject(h, INFINITE); // 可選:等待結束
}
| 特性 | 直接呼叫 | 執行緒 |
|---|---|---|
| 阻塞性 | 同步阻塞 | 非同步並行 |
| 回傳值獲取 | 直接 return | 需共享記憶體/事件/Future |
| 資源開銷 | 極低 | 棧空間(預設 1MB)、核心物件 |
| 適用場景 | 快速、依序任務 | 耗時 IO、計算、UI 響應 |