可重入函数和不可重入函数

可重入函数:从字面上,为了便于记忆,可以单纯的理解为,可以重新进入的函数。一个函数如果可以被多个进程同时调用,而不会返回错误或者说一个函数正在执行的过程中,被中断,而执行另外一个进程,另外一个进程仍然调用该函数,函数的返回值仍然不会出错,这样的函数就是可重入函数。

可重入函数为了保证返回的不出错,要对其使用的变量进行保护。往往该函数及其副本都有自己独立的栈区。往往很少使静态区,这是因为使用静态区的话,如果再次调用该函数使用有可能改变该静态区内的数值,如果使用了静态变量区。那么一定要保证该静态变量区的互斥以保证数据不被其他进程修改,保证数据的正确性。


可重入函数可用在并发的情况下


不可重入函数即这个函数不可被中断,或者说同时只可被一个进程调用,而不可被多个进程所调用。

对于不可重入函数,可以使用静态变量区,因为该类型函数特有的属性,使其不必担心静态变量区的其他进程修改。


参考文献:http://www.cppblog.com/franksunny/archive/2007/08/03/29269.html

http://blog.csdn.net/yueyahe/article/details/729126

你可能感兴趣的:(可重入函数和不可重入函数)