【发布时间】:2012-01-15 12:31:09
【问题描述】:
可能重复:
Malloc thread-safe?
我在阅读《Linux 编程接口》时并没有感到困惑。
从书中说 malloc 是不可重入的,因为它操纵全局链表数据结构,但通过使用互斥锁使其成为线程安全的。
我对此有点困惑:既然使用互斥锁是线程安全的,因此可以同时被多个线程调用,为什么它不是可重入函数? (如果我们说可重入意味着它可以被多个调用者同时调用)
另一个问题是,既然 malloc 是线程安全的,我们可以把它放在信号处理程序中吗? 我认为答案是肯定的,但我不确定,因为根据这本书,它说只有可重入或异步信号安全函数可以放在信号处理程序中。
谁能给我解释一下?
【问题讨论】:
-
malloc 的实现中是否包含互斥锁?
标签: c linux multithreading malloc reentrancy