複製鏈接
請複製以下鏈接發送給好友

運行時庫

鎖定
計算機程序設計領域,運行時庫是一種被編譯器用來實現編程語言內置函數,以提供該語言程序運行時(執行)支持的一種特殊的計算機程序庫。這種庫一般包括基本的輸入輸出或是內存管理等支持。
中文名
運行時庫
學    科
計算機
定    義
在計算機程序設計領域,運行時庫是一種被編譯器用來實現編程語言內置函數,以提供該語言程序運行時(執行)支持的一種特殊的計算機程序庫

目錄

運行時庫概念

運行時庫由編譯器決定,以面向編程語言,提供其最基本的執行時需要。比如Visual Basic需要複雜的運行時庫支持而C的運行時庫則相對簡單。
當然這還是由編譯器廠商決定的。運行時庫中的函數可能對程序員透明,也可能不透明。這也是由編譯器廠商忖度語言執行環境的需求而決定的。
運行時庫是程序在運行時所需要的庫文件,通常運行時庫是以LIB或DLL形式提供的。C運行時庫誕生於20世紀70年代,當時的程序世界還很單純,應用程序都是單線程的,多任務或多線程機制在此時還屬於新觀念。所以這個時期的C運行時庫都是單線程的。
隨着操作系統多線程技術的發展,最初的C運行時庫無法滿足程序的需求,出現了嚴重的問題。C運行時庫使用了多個全局變量(例如errno)和靜態變量,這可能在多線程程序中引起衝突。假設兩個線程都同時設置errno,其結果是後設置的errno會將先前的覆蓋,用户得不到正確的錯誤信息
因此,Visual C++提供了兩種版本的C運行時庫。一個版本供單線程應用程序調用,另一個版本供多線程應用程序調用。多線程運行時庫與單線程運行時庫有兩個重大差別:

運行時庫差別

(1)類似errno的全局變量,每個線程單獨設置一個;
這樣從每個線程中可以獲取正確的錯誤信息
(2)多線程庫中的數據結構以同步機制加以保護。
這樣可以避免訪問時候的衝突。