我想知道函数是否有可能是线程安全的但不是可重入的。在一些网站上,他们说这是不可能的,而其他人则认为这是可能的。他们说可能的例子并不清楚。那么有可能有一个线程安全且不可重入的函数吗?是否有一个明确的例子来证明这一点?
答案 0 :(得分:2)
本文的示例:http://en.wikipedia.org/wiki/Reentrancy_%28computing%29
int function()
{
mutex_lock();
...
function body
...
mutex_unlock();
}
如果中断中断此函数并且中断处理程序调用此函数,则系统将永久挂起,因为第一个函数锁定了互斥锁。