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

Windows C++ 線程函數與直接呼叫差異:並行與阻塞

     編輯:程式設計疑難解答

直接呼叫

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 響應
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved