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

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

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


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


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

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


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

http://blog.youkuaiyun.com/yueyahe/article/details/729126

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值