可重入函数

来源:互联网 发布:单片机 多少位 编辑:程序博客网 时间:2024/06/06 05:26

可重入函数:能够被多个线程‘同时’调用的函数,并且能够保证函数结果正确性的函数。


在C语言中编写可重入函数时,尽量不要使用全局变量或静态变量,如果使用了全特别注意局变量或静态变量,就需要注意对这类变量访问的互斥。


一般采用以下几种措施来保证函数的可重入性:信号量机制,关调度机制,关中断机制


不可调用不可重入的函数,当调用了不可重入的函数时,会使该函数也变为不可重入的函数。一般驱动程序都是不可重入的函数。


保证函数可重入性的方法:

1) 在写函数时尽量使用局部变量。

2)对于要使用的全局变量要加以保护(如采取关中断、信号量等方法),这样构成的函数就一定是一个可重入的函数。


满足下列的函数多数是不可重入的:

1)函数体内使用了静态的数据结构。

2)函数体内调用了malloc()或者free()函数。

3)函数体内调用了标准I/O函数。




0 0
原创粉丝点击