标签: multithreading reentrancy
在APUP第12.5节中,提到:
” 如果函数对于多个线程是可重入的,我们说它是线程安全的。但是,这并没有告诉我们该函数是否可以在信号处理程序中重入。“
我很困惑为什么函数是线程安全的但可能不是异步信号安全的。
有一个例子吗?
谢谢
答案 0 :(得分:1)
通过使用互斥锁保护其修改的状态,可以使函数成为线程安全的。但是,这不是异步信号安全的,因为如果你调用该函数,例如从信号处理程序中,程序可以死锁。
具有此属性的常用函数是malloc()。