|
|

楼主 |
发表于 2005-6-13 19:29:46
|
显示全部楼层
找了点资料,搞懂了。
线程安全是指多个线程调用同一个函数,如果是线程安全的,那么每次的结果都是正确。
可重入函数是指函数内部没有使用共享变量。
可重入函数是线程安全函数的一个真子集。
下面一个函数就是线程安全但却不可重入的
static int *sharedID;
int* threadsafe_getID( char* name )
{
int *unsharedID;
P( &mutex );
sharedID = notThreadsafe_getID( name );
unsharedID = sharedID;
V( & mutex);
return unsharedID;
}
上面的函数通过P、V操作封装得到一个线程安全函数,却不是可重入函数。 |
|