C語言中文網
首頁 > 編程筆記 > C語言筆記 > C語言多線程 閱讀:7,792

C語言多線程,C11多線程完全攻略

分類:
C語言運算符
C語言流程控制
C語言結構體和位操作
C語言文件操作
C語言數組
C語言函數
指針
字符串
C語言多線程
C 程序中經常同時執行多項任務。例如,一個程序可能:

(1) 在執行程序過程中通過完成并行任務來提高性能。

(2) 在處理用戶輸入的同時,在后臺進行耗時的數據通信和實時操作。

通過并行執行(concurrent execution)程序中的部分代碼,可以實現不同任務同時進行。特別是在多處理器系統(當然也包括多核處理器)上,程序通過并行機制更有效地使用系統資源,其意義越來越重大。

C11 標準以前,C 開發人員必須依賴操作系統或相應鏈接庫來實現并行。C11 標準發布以后,使得 C 程序可便捷地實現并行。C11 支持多線程執行(multithreaded execution)。

多線程指的是在一個程序進程中處理控制流的多路并行通道,它在所有操作系統上為運行該程序提供了相同程度的并發性。為此,C11 標準定義了一個相應的內存模型(memory model),并且支持原子操作(atomic operation)。

在 C11 標準下,對于多線程和原子操作的支持是可選的。如果支持 C11 標準的實現版本定義了宏 _STDC_NO_THREADS_ 和 _STDC_NO_ATOMICS_,則表示該實現版本不支持多線程與原子操作。

你可能曾使用過針對 C 語言的 POSIX 線程擴展(簡稱 pthreads),該擴展是根據 UNIX 可移植操作系統接口標準(POSIX)——IEEE 1003.1c——實現多線程編程的鏈接庫。如果使用過該擴展,你會發現 C11 線程編程的接口在很多方面與 POSIX 標準類似。
文章列表
C語言線程和進程
C語言創建線程thread_create()
C語言線程對象和線程存儲
C語言線程間通信
C語言原子操作的應用(內存次序,內存屏障)
C語言線程互斥和原子操作
C語言線程函數

精美而實用的網站,提供C語言C++STLLinuxShellJavaGo語言等教程,以及socketGCCviSwing設計模式JSP等專題。

Copyright ?2011-2018 biancheng.net, 陜ICP備15000209號

底部Logo