運行時庫由編譯器決定,以面向程式語言,提供其最基本的執行時需要。比如Visual Basic需要複雜的運行時庫支持而C的運行時庫則相對簡單。
當然這還是由編譯器廠商決定的。運行時庫中的函式可能對程式設計師透明,也可能不透明。這也是由編譯器廠商忖度語言執行環境的需求而決定的。
運行時庫是程式在運行時所需要的庫檔案,通常運行時庫是以LIB或DLL形式提供的。C運行時庫誕生於20世紀70年代,當時的程式世界還很單純,應用程式都是單執行緒的,多任務或多執行緒機制在此時還屬於新觀念。所以這個時期的C運行時庫都是單執行緒的。
隨著作業系統多執行緒技術的發展,最初的C運行時庫無法滿足程式的需求,出現了嚴重的問題。C運行時庫使用了多個全局變數(例如errno)和靜態變數,這可能在多執行緒程式中引起衝突。假設兩個執行緒都同時設定errno,其結果是後設定的errno會將先前的覆蓋,用戶得不到正確的錯誤信息。
因此,Visual C++提供了兩種版本的C運行時庫。一個版本供單執行緒應用程式調用,另一個版本供多執行緒應用程式調用。多執行緒運行時庫與單執行緒運行時庫有兩個重大差別:
(1)類似errno的全局變數,每個執行緒單獨設定一個;
這樣從每個執行緒中可以獲取正確的錯誤信息。
(2)多執行緒庫中的數據結構以同步機制加以保護。
這樣可以避免訪問時候的衝突。
相關詞條
-
公共語言運行時
CLR叫做公共語言運行時(Common Language Runtime),它是所有.NET應用程式運行時環境,是所有.NET應用程式都使用的編程基礎,...
定義 託管執行過程 自動記憶體管理 CLR的組件 優點 -
Boost庫
Boost庫是為C++語言標準庫提供擴展的一些C++程式庫的總稱,由Boost社區組織開發、維護。Boost庫可以與C++標準庫完美共同工作,並且為其提...
基本介紹 分類 -
庫存車
所謂的“庫存車”是沒有一個明確法律定義的,但在汽車銷售行業確實有“庫存車”一說,它一般是指出廠後超過3個月還沒有銷售出去的汽車。由於作為一種商品,汽車的...
基本介紹 弊端 分辨 打理 選購 -
MFC[微軟基礎類庫]
MFC(Microsoft Foundation Classes),是微軟公司提供的一個類庫(class libraries),以C++類的形式封裝了W...
簡單介紹 特點 關鍵技術 重要MFC MFC類別 -
GNUC函式庫
ux類系統中,GNU C運行期庫,通常作為GNU ux核心,成為GNU/Lin
-
罪惡黑名單
通緝犯,進入FBI總部要求與助理局長哈羅德·庫珀見面。在前台人員發現他身份...後的幾年裡為罪犯服務,促成很多罪惡交易。雷丁頓還沒等FBI助理局長庫珀...和呼嘯而至的警車。助理局長庫珀親自與這個第一天上班的新手見面。可伊莉莎白...
劇情簡介 分集劇情 演職員表 幕後花絮 獲獎記錄 -
動態連線庫
動態程式庫(Dynamic Link Library或者Dynamic-link library,縮寫為DLL),又稱為動態程式庫,是微軟公司在微軟視窗...
動態連線庫 -
Akka[Scala 編寫的庫]
Akka是JAVA虛擬機JVM平台上構建高並發、分散式和容錯套用的工具包和運行時。Akka用Scala語言寫成,同時提供了Scala和JAVA的開發接口...
簡介 特性 -
滑壓蓄氣庫
滑壓蓄氣庫:變壓運行又稱滑壓運行是指汽輪機在不同工況下運行時,調節汽閥處於全開狀態,保持主汽溫度基本不變,由鍋爐調整新汽壓力,改變汽輪機的進汽一和含降,...