原文:[Linux]不可重入函数

一 概述 怎么会有可重入和不可重入。 在多任务系统下,中断可能在任务执行的任何时间发生 如果一个函数的执行期间被中断后,到重新恢复到断点进行执行的过程中,函数所依赖的环境没有发生改变,那么这个函数就是可重入的,否则就不可重入。 在中断前后不都要保存和恢复上下文吗,怎么会出现函数所依赖的环境发生改变了呢 我们知道中断时确实保存一些上下文,但是仅限于返回地址,cpu寄存器等之类的少量上下文,而函数内部 ...

2019-04-02 14:37 0 968 推荐指数:

查看详情

linux: 可重入函数不可重入函数

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

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

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

Thu Apr 25 06:01:00 CST 2019 0 966
重入函数不可重入函数的区别

调度过程中,它是安全的,不必担心数据出错。 不可重入函数基本上与可重入函数有相反的定义了:不可重 ...

Tue Dec 01 22:29:00 CST 2015 0 6633
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语言之可重入函数 && 不可重入函数

重入函数 在 实时系统的设计中,经常会出现多个任务调用同一个函数的情况。如果这个函数不幸被设计成为不可重入函数的话,那么不同任务调用这个函数时可能修改其他任 务调用这个函数的数据,从而导致不可预料的后果。那么什么是可重入函数呢?所谓可重入是指一个可以被多个任务调用的过程,任务在调用 ...

Thu Aug 14 23:34:00 CST 2014 0 11712
重入不可重入

主 要用于多任务环境中,一个可重入函数简单来说就是可以被中断的函数,也就是说,可以在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段代 码,而返回控制时不会出现什么错误;而不可重入函数由于使用了一些系统资源,比如全局变量区,中断向量表等,所以它如果被中断的话,可能会 ...

Wed Dec 07 21:55:00 CST 2016 0 5287
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM