Chinaunix

标题: "可重入(reentrant)"与“线程安全(thread-safe )”函数的区别 [打印本页]

作者: jediii    时间: 2009-07-19 19:39
标题: "可重入(reentrant)"与“线程安全(thread-safe )”函数的区别
可重入(reentrant):函数被同时调用时,每个调用访问独立的数据。
线程安全(thread-safe ):函数被同时调用时,每个调用访问共享数据,但是访问被序列化了(通过加锁等手段)。

例如:

可重入:


int get_value()
{
      int iRet = what_you_want();
      return iRet;
}

线程安全:

int g_value;

int get_value()
{
    return someMUTEX(g_value);
}

作者: viva_la_vida    时间: 2009-07-20 10:58
要说什么?
作者: jieao111    时间: 2009-07-20 11:26
??
作者: benjiam    时间: 2009-07-20 11:29
可重入的话 数据独立 那就肯定线程安全了。

所以可重入的函数肯定线程安全。

线程安全的未必可重入。

但是分这么细 除了学术上的作用,有实际意义吗》?
作者: converse    时间: 2009-07-20 11:34
LS,至少基本的概念要有吧,这个就是意义了.
作者: prolj    时间: 2009-07-20 11:59
可重入不一定线程安全
线程安全是不是一定可重入我想也没有充分必要联系吧?
作者: wishel    时间: 2009-07-20 14:09
很奇怪很多人认为可重入线程安全是两回事,不知道你们的概念从哪里来的?
APUE上stevens对线程说法是rentrancy,我看的是英文版,不知道中文版怎么说的
关于async signal safe, async signal reentrancy,thread safe, thread reentrancy的意思上面说的很清楚了。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2