原文:可重入函数

这种情况出现在多任务系统当中,在任务执行期间捕捉到信号并对其进行处理时,进程正在执行的指令序列就被信号处理程序临时中断。如果从信号处理程序返回,则继续执行进程断点处的正常指令序列,从重新恢复到断点重新执行的过程中,函数所依赖的环境没有发生改变,就说这个函数是可重入的,反之就是不可重入的。众所周知,在进程中断期间,系统会保存和恢复进程的上下文,然而恢复的上下文仅限于返回地址,cpu寄存器等之类的少量 ...

2018-10-30 15:31 0 1138 推荐指数:

查看详情

重入函数和不可重入函数

重入函数可以做这样的基本定义:重入意味着这个函数可以重复进入,可以被并行调用,可以被中断,它只使用自身栈上的数据变量,它不依赖于任务环境,在多任务调度过程中,它是安全的,不必担心数据出错。 不可重入函数基本上与可重入函数有相反的定义了:不可重入,意味着不可被并行调度,否则会产生不可预料 ...

Thu Apr 25 06:01:00 CST 2019 0 966
重入函数

一、可重入函数1)什么是可重入性?可重入(reentrant)函数可以由多于一个任务并发使用,而不必担心数据错误。相反, 不可重入(non-reentrant)函数不能由超过一个任务所共享,除非能确保函数的互斥(或者使用信号量,或者在代码的关键部分禁用中断)。可重入函数可以在任意时刻被中断,稍后再 ...

Sun Feb 09 06:10:00 CST 2020 0 868
重入函数与不可重入函数的区别

转载自:http://blog.chinaunix.net/uid-20621895-id-196621.html 可重入函数可以做这样的基本定义:重入意味着这个函数可以重复进入,可以被并行调用,可以被中断,它只使用自身栈上的数据变量,它不依赖于任务环境,在多任务 ...

Tue Dec 01 22:29:00 CST 2015 0 6633
linux: 可重入函数与不可重入函数

1. 可重入函数与线程安全 摘自 多线程和多进程的区别(小结) http://blog.csdn.net/hairetz/article/details/4281931 要确保函数线程安全,主要需要考虑的是线程之间的共享变量。 属于同一进程的不同线程会共享进程内存空间中的全局区和堆,而私有 ...

Thu Nov 12 02:19:00 CST 2015 0 1966
C语言可重入函数和不可重入函数

重入函数和不可重入函数的概念   在函数中如果我们使用静态变量了,导致产生中断调用别的函数的 过程中可能还会调用这个函数,于是原来的 静态变量被在这里改变了,然后返回主体函数,用着的那个静态变量就被改变了,导致错误。这类函数我们称为不可重入函数。   如果是在函数体内 动态申请内存的话 ...

Wed Jan 09 23:55:00 CST 2019 0 3114
C语言可重入函数和不可重入函数

【1】什么是可重入函数和不可重入函数呢? 可重入函数:一般是保存在栈里面的,是可以被编译器随机的分配内存并且释放的函数称为可重入函数 不可重入函数:一般是指函数返回值是static 型的或者是函数内部定义了static变量或者使用了全局变量等称为不可重入函数 ...

Mon Feb 28 02:23:00 CST 2022 0 663
C语言函数重入

C语言函数重入重入函数:可以被中断的函数,即这个函数执行时,可以中断其执行,可以由一个或多个任务并发使用,而不比担心数据错误。 不可重入函数(不安全函数) 不能运行在多任务环境下,除非能保证互斥(使用信号量/代码的关键部分禁用中断) 是由于使用了未受保护的系统资源 ...

Tue May 10 06:02:00 CST 2016 0 2342
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM