malloc线程安全
来源:互联网 发布:淘宝恒源祥旗舰店真吗 编辑:程序博客网 时间:2024/05/16 01:46
只在Linux下查看了malloc的使用情况:
GCC版本4.6.1
libc-dev 3.0.0-14.23
//============================================================
libc中有非线程安全/线程安全两个版本malloc函数
下面的链接对此有描述,几年前的版本可能是这样的:
通过 -pthreads 选项可以明确指定在链接时是链接非线程安全的版本还是线程安全的版本。
http://stackoverflow.com/questions/987444/about-thread-safety-in-malloc-and-free
//============================================================
我使用的版本中已经没有-pthreads这个选项了,但更智能些:
会智能选择使用非线程安全/线程安全的malloc函数
//====================
测试结果:
只要使用了线程相关的函数,在编译后的文件中使用的malloc函数就是线程安全的版本。
(链接器不会考虑你是否真的启动了线程,或是否真的使用了那个线程)
//====================
即:在文件中引用了头文件#include<pthread.h>,编译时使用-lpthread选项,文件中使用了pthread_t定义变量,
但没有使用pthread_attr_init或pthread_createh函数,编译后的malloc函数就是非线程安全的。
//====================
但如果使用了pthread_attr_init或pthread_createh函数,编译后的malloc函数就是线程安全的。
即使你只是使用了一次pthread_createh(NULL,NULL,NULL,NULL);
//============================================================
我以前从没考虑过malloc是否是线程安全的这回事,反正就直接用了。
使用glibc时可以在官网上下载手册,如果函数是非线程安全的,在函数下面会有一行说明(好像只有很少几个是非线程安全的)。
虽然malloc下面没有说明,但我还是观察了一下,算是解开自己的疑惑吧。
//============================================================
End:)
http://www.cnblogs.com/tomren/archive/2011/12/24/2300602.html
- malloc线程安全
- malloc是线程安全的吗
- Malloc函数的线程安全与可重入性分析
- 定义安全malloc
- TCMalloc:线程缓存Malloc
- 线程安全
- 线程安全
- 线程安全
- 线程安全
- 线程安全
- 线程安全
- 线程安全
- 线程安全
- 线程安全
- 线程安全
- 线程安全
- 线程安全
- 线程安全
- javascript 遍历取得checkbox、radio的属性值 并回显复选框、单选框
- 今天才知道,原来按规范域名最后是有点的,没有点只是一种简略形式。
- 异常
- 浅谈RAID写惩罚(Write Penalty)与IOPS计算
- ORACLE JOBS
- malloc线程安全
- "Invalid username/password or database/scan listener not up"
- 【Android每周专题】写在最前面
- This system is not registered with RHN
- 地球人己阻止不了程序猿们学习cocos2d-x了 (第五篇)
- android TextView的跑马灯效果的实现
- linux下通过.sh文件启动java程序
- Lesson01:HTML5 简介
- 面试中常问到的称小球问题