運行時庫

運行時庫,是一種被編譯器用來實現程式語言內置函式,以提供該語言程式運行時(執行)支持的一種特殊的電腦程式庫。一般包括基本的輸入輸出或是記憶體管理等支持。

在電腦程式設計領域,運行時庫是一種被編譯器用來實現程式語言內置函式,以提供該語言程式運行時(執行)支持的一種特殊的電腦程式庫。這種庫一般包括基本的輸入輸出或是記憶體管理等支持。
運行時庫由編譯器決定,以面向程式語言,提供其最基本的執行時需要。比如Visual Basic需要複雜的運行時庫支持而C的運行時庫則相對簡單。
當然這還是由編譯器廠商決定的。運行時庫中的函式可能對程式設計師透明,也可能不透明。這也是由編譯器廠商忖度語言執行環境的需求而決定的。
運行時庫是程式在運行時所需要的庫檔案,通常運行時庫是以LIB或DLL形式提供的。C運行時庫誕生於20世紀70年代,當時的程式世界還很單純,應用程式都是單執行緒的,多任務或多執行緒機制在此時還屬於新觀念。所以這個時期的C運行時庫都是單執行緒的。
隨著作業系統多執行緒技術的發展,最初的C運行時庫無法滿足程式的需求,出現了嚴重的問題。C運行時庫使用了多個全局變數(例如errno)和靜態變數,這可能在多執行緒程式中引起衝突。假設兩個執行緒都同時設定errno,其結果是後設定的errno會將先前的覆蓋,用戶得不到正確的錯誤信息。
因此,Visual C++提供了兩種版本的C運行時庫。一個版本供單執行緒應用程式調用,另一個版本供多執行緒應用程式調用。多執行緒運行時庫與單執行緒運行時庫有兩個重大差別:
(1)類似errno的全局變數,每個執行緒單獨設定一個;
這樣從每個執行緒中可以獲取正確的錯誤信息。
(2)多執行緒庫中的數據結構以同步機制加以保護。
這樣可以避免訪問時候的衝突。

相關詞條

相關搜尋

熱門詞條

聯絡我們