一、什么是重入?
函数在执行时,由于外部原因或内部调用,又一次进入该函数执行。
二、重入发生场景
多个线程同时执行该函数
函数自身调用自身
三、什么是可重入
在相同的输入下,函数每次被调用产生的结果相同。
栗子:
int add(int a, int b)
{
return a + b;
}
每次调用add(1, 2),得到的结果都是3.
四、可重入的函数必须具备哪些特点
不使用任何静态或全局的非const对象
不返回任何静态或全局的非const对象的指针
只依赖于调用方提供的参数
不依赖任何单个资源的锁
不调用任何不可重入的函数