加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

函数的可重入性

(2019-08-31 23:02:20)
分类: 编程技术
若一个程序或子程序可以安全的被并行执行,则称其为可重入(reentrant)的;即当该子程序正在运行时,可以再次进入并执行它。

常见的不可重入函数有
  • printf - 引用全局变量stdout
  • malloc - 全局内存分配表
  • free - 全局内存分配表

中断处理函数需要可重入,所以不能调用上述函数。
在Unix里通常都有加上_r后缀的同名可重入函数版本。

线程安全与可重入性是两个不同性质的概念。
可重入函数未必是线程安全的;线程安全函数未必是可重入的。

常见的不可重入函数包括:
rand, srand
getenv, getenv_s
strtok, strerror
asctime, ctime, localtime, gmtime
setlocale
atomic_init
tmpnam
mbrtoc16, c16rtomb, mbrtoc32, c32rtomb
gethostbyaddr, gethostbyname
inet_ntoa

malloc函数线程安全但是不可重入

函数的可重入性理解

函数可重入性(Reentrancy)概念详解

Malloc函数的线程安全与可重入性分析

0

阅读 收藏 喜欢 打印举报/Report
前一篇:Emacsorg-mode
后一篇:Multi-layer
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有