什么是C Runtime函数库的多线程版本

转载 2004年07月14日 23:46:00

C Runtime函数库于20世纪70年代产生出来时,PC的内存容量还很小,多任务是个新奇观念,更别提什么多线程了。因此以当时产品为基础所演化的C Runtime函数库在多线程(multithreaded)的表现上有严重问题,无法被多线程程序使用。

 

利用各种同步机制(synchronous mechanism)如critical sectionmutexsemaphoreevent,可以重新开发一套支持多线程的runtime函数库。问题是,加上这样的能力,可能导致程序代码大小和执行效率都遭受不良波及──即使你只激活了一个线程。

 

Visual C++ 的折衷方案是提供两种版本的C Runtime函数库。一种版本给单线程程序使用,一种版本给多线程程序使用。多线程版本的重大改变是:第一,变量如errno现在变成每个线程各拥有一个。第二,多线程版中的数据结构以同步机制加以保护。

 

Visual C++ 一共有六个C Runtime函数库产品供你选择:

  Single-Threadedstatic           libc.lib            898,826

  Multithreadedstatic             libcmt.lib          951,142

  Multithreaded DLL                   msvcrt.lib          5,510,000

  Debug Single-Threadedstatic     libcd.lib           2,374,542

  Debug Multithreadedstatic       libcmtd.lib         2,949,190

  Debug Multithreaded DLL             msvcrtd.lib         803,418

 

Visual C++ 编译器提供下列选项,让我们决定使用哪一个C Runtime函数库:

  /ML         Single-Threadedstatic

  /MT         Multithreadedstatic

  /MD         Multithreaded DLLdynamic import library

  /MLd        Debug Single-Threadedstatic

  /MTd        Debug Multithreadedstatic

  /MDd        Debug Multithreaded DLLdynamic import library

 

 

 

C语言运行时库详解 (C/C++ Runtime)

运行时库是程序在运行时所需要的库文件,通常运行时库是以LIB或DLL形式提供的。C运行时库诞生于20世纪70年代,当时的程序世界还很单纯,应用程序都是单线程的,多任务或多线程机制在此时还属于新观念。所...
  • softfox
  • softfox
  • 2013年03月01日 16:41
  • 5964

c语言编程基础------0.4GNU C 函数库(glibc)

这篇文章主要来自维基百科 GNU C函式庫 (重定向自Glibc) GNU C函式庫 初始版本 1987年[1] 穩定版本 2.2...
  • wujiangguizhen
  • wujiangguizhen
  • 2015年02月05日 15:04
  • 1811

C语言标准函数库

http://blog.csdn.net/pipisorry/article/details/30398049C语言标准头 断言 字符类测试 (部分)库函数抛出的错误代码 浮点数运算...
  • pipisorry
  • pipisorry
  • 2014年06月13日 01:19
  • 1218

Objective-C Runtime 运行时之一:类与对象

Objective-C语言是一门动态语言,它将很多静态语言在编译和链接时期做的事放到了运行时来处理。这种动态语言的优势在于:我们写代码时能够更具灵活性,如我们可以把消息转发给我们想要的对象,或者随意交...
  • hengshujiyi
  • hengshujiyi
  • 2014年10月31日 17:05
  • 7983

标准C函数库的用法

本篇介绍若干常用的标准C函数的用法,主要介绍stdio(标准输入输出)、math(数字函数库)、time(时间函数库)、stdlib(标准函数库)string(标准字符串函数)等。 最后更新 2015...
  • iamshaofa
  • iamshaofa
  • 2015年03月17日 10:40
  • 2689

带你玩转Visual Studio——带你跳出坑爹的Runtime Library坑

Windows下**C Runtime Library**是微软对C标准库函数的实现,这样每个程序可以直接使用C标准库的函数;后来出现了C++,于是又在C Runtime Library基础上开发了*...
  • luoweifu
  • luoweifu
  • 2015年10月13日 20:06
  • 24299

Standard C 语言标准函数库速查 (Cheat Sheet)

Standard C 语言标准函数库速查 (Cheat Sheet) tmpnam 函数说明 函数名: tmpnam  功  能: 创建一个唯一的文件名  用  法: char *tmpna...
  • u010984552
  • u010984552
  • 2016年10月08日 15:17
  • 511

Objective-C Runtime的基本使用(iOS Runtime的初体验)

一、Runtime前言搞懂Runtime好像很难,需要一些底层基础,我看了好久,也才懂得一些些,这里做一个笔记,OC是运行时语言,只有在程序运行时,才会去确定对象的类型,并调用类的对象相应的方法。利用...
  • yj229201093
  • yj229201093
  • 2016年06月03日 14:10
  • 3789

【C】初学习之库函数——通用的实用工具<stdlib.h>之伪随机序列生成函数

rand函数和srand函数都可以用来生成伪随机数。(用于模拟程序和玩游戏程序) (1)rand函数——随机数发生器 每次调用rand函数,会返回一个0—RAND_MAX(中定义的宏)的数字。ra...
  • allen_qt
  • allen_qt
  • 2017年08月25日 13:55
  • 67

常用ANSI C语言标准库函数汇总(一)

常用ANSI C语言标准库函数汇总(一)C语言被发明出来时并没有什么库函数,随着C语言的流行,越来越多的厂商和组织开始提供C语言的编译器,同时把经常用到的函数封装成“库”的形式发布。后来,美国国家标准...
  • NevarMovin
  • NevarMovin
  • 2017年04月30日 12:11
  • 589
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:什么是C Runtime函数库的多线程版本
举报原因:
原因补充:

(最多只允许输入30个字)