本文引用于《深入浅出MFC》-----
当C runtime 函数库于 1970s 年代产生出來时,PC 的 记忆体容量还很小,多工是个新奇概念,更別提什么多执行线程了。因此以当时产品为基础所演化的 C runtime 函
数 库在多线程(multithreaded)的表現上有严重问题,无法被多线程程式使用。利用各种同步机制(synchronous mechanism)如 critical section、mutex、semaphore、event,可以重新开发一套支援多执行线程的 runtime 函数库。问题是,加上这样的能力,可能导致 程序码大小和执行效率都遭受不良波及 -- 即使你只启动了一个执行线程。
Visual C++ 的折衷方案是提供两种版本的 C runtime 函数库。一种版本给单线程程序使用,一种版本給多线程程序使用。多线程版本的重大改变是,第一,变数如 errno 者,现在变成每個执行线程各拥有一个。第二,多线程版中的资料结构以同步机制加以保护。
Visual C++ 一共有六個 C runtime 函式庫產品供你選擇:
当C runtime 函数库于 1970s 年代产生出來时,PC 的 记忆体容量还很小,多工是个新奇概念,更別提什么多执行线程了。因此以当时产品为基础所演化的 C runtime 函
数 库在多线程(multithreaded)的表現上有严重问题,无法被多线程程式使用。利用各种同步机制(synchronous mechanism)如 critical section、mutex、semaphore、event,可以重新开发一套支援多执行线程的 runtime 函数库。问题是,加上这样的能力,可能导致 程序码大小和执行效率都遭受不良波及 -- 即使你只启动了一个执行线程。
Visual C++ 的折衷方案是提供两种版本的 C runtime 函数库。一种版本给单线程程序使用,一种版本給多线程程序使用。多线程版本的重大改变是,第一,变数如 errno 者,现在变成每個执行线程各拥有一个。第二,多线程版中的资料结构以同步机制加以保护。
Visual C++ 一共有六個 C runtime 函式庫產品供你選擇: