免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
malloc是否是線程安全的?

只在Linux下查看了malloc的使用情況:

GCC版本4.6.1

libc-dev 3.0.0-14.23

//============================================================

libc中有非線程安全/線程安全兩個版本malloc函數(shù)

下面的鏈接對此有描述,幾年前的版本可能是這樣的:

通過 -pthreads 選項可以明確指定在鏈接時是鏈接非線程安全的版本還是線程安全的版本。

http://stackoverflow.com/questions/987444/about-thread-safety-in-malloc-and-free

//============================================================

我使用的版本中已經沒有-pthreads這個選項了,但更智能些:

會智能選擇使用非線程安全/線程安全的malloc函數(shù)

//====================

測試結果:

只要使用了線程相關的函數(shù),在編譯后的文件中使用的malloc函數(shù)就是線程安全的版本。

(鏈接器不會考慮你是否真的啟動了線程,或是否真的使用了那個線程)

//====================

即:在文件中引用了頭文件#include<pthread.h>,編譯時使用-lpthread選項,文件中使用了pthread_t定義變量,

但沒有使用pthread_attr_initpthread_createh函數(shù),編譯后的malloc函數(shù)就是非線程安全的

//====================

但如果使用了pthread_attr_initpthread_createh函數(shù),編譯后的malloc函數(shù)就是線程安全的

即使你只是使用了一次pthread_createh(NULL,NULL,NULL,NULL);

//============================================================

我以前從沒考慮過malloc是否是線程安全的這回事,反正就直接用了。

使用glibc時可以在官網(wǎng)上下載手冊,如果函數(shù)是非線程安全的,在函數(shù)下面會有一行說明(好像只有很少幾個是非線程安全的)。

雖然malloc下面沒有說明,但我還是觀察了一下,算是解開自己的疑惑吧。

//============================================================

End:)

本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
reentrant函數(shù)與thread safe函數(shù)淺析
多線程開發(fā)時線程局部變量的使用
解決了一個隱蔽的內存泄漏:pthread
linux下C實現(xiàn)多線程
【討論】malloc的可重入性和線程安全性
多線程同步訪問共享內存 — unp讀書筆記(2) - godorz…
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服