可重入和不可重入函数
可重入函数
是指能够被多个线程“同时”调用的函数,并且能保证函数结果正确不必担心数据错误的函数。
不可重入函数
不能运行在多任务环境下,除非能保证互斥的函数。
不可重入函数:
(1)函数体内使用了静态的数据结构;
(2)函数体内调用了malloc()或者free()函数;
(3)函数体内调用了标准I/O函数。
转化为可重入
1、使用互斥量
2、使用临界段
3、只使用局部变量
可重入函数
是指能够被多个线程“同时”调用的函数,并且能保证函数结果正确不必担心数据错误的函数。
不可重入函数
不能运行在多任务环境下,除非能保证互斥的函数。
不可重入函数:
(1)函数体内使用了静态的数据结构;
(2)函数体内调用了malloc()或者free()函数;
(3)函数体内调用了标准I/O函数。
转化为可重入
1、使用互斥量
2、使用临界段
3、只使用局部变量