当前位置: 技术问答>linux和unix
【求助】一个线程安全但是不可重入的代码
来源: 互联网 发布时间:2017-05-20
本文导语: 为什么以下代码为线程安全函数,但是不是可重入函数。 static int *sharedID; int* threadsafe_getID( char* name ) { int *unsharedID; P( &mutex ); sharedID = notThreadsafe_getID( name ); unsharedID = sharedID; V( & mutex); return unsharedID; } 可...
为什么以下代码为线程安全函数,但是不是可重入函数。
static int *sharedID;
int* threadsafe_getID( char* name )
{
int *unsharedID;
P( &mutex );
sharedID = notThreadsafe_getID( name );
unsharedID = sharedID;
V( & mutex);
return unsharedID;
}
可重入函数不是强调具有再现性吗?这个代码是不是不具有再现性?如果是不具有再现性,是为什么呢?
static int *sharedID;
int* threadsafe_getID( char* name )
{
int *unsharedID;
P( &mutex );
sharedID = notThreadsafe_getID( name );
unsharedID = sharedID;
V( & mutex);
return unsharedID;
}
可重入函数不是强调具有再现性吗?这个代码是不是不具有再现性?如果是不具有再现性,是为什么呢?
|
sharedID 可以被同文件内的其它函数改变
补充:楼主的结帖率也太低了
补充:楼主的结帖率也太低了