可重入函数

原创 2012年03月23日 20:37:08

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

也可以这样理解,重入即表示重复进入,首先它意味着这个函数可以被中断,其次意味着它除了使用自己栈上的变量以外不依赖于任何环境(包括static),这样的函数就是purecode(纯代码)可重入,可以允许有该函数的多个副本在运行,由于它们使用的是分离的栈,所以不会互相干扰。如果确实需要访问全局变量(包括static),一定要注意实施互斥手段。可重入函数在并行运行环境中非常重要,但是一般要为访问全局变量付出一些性能代价


浅谈可重入函数与不可重入函数

在实时系统的设计中,经常会出现多个任务调用同一个函数的情况。如果有一个函数不幸被设计成为这样:那么不同任务调用这个函数时可能修改其他任务调用这个函数的数据,从而导致不可预料的后果。这样的函数是不安全的...
  • lianghe_work
  • lianghe_work
  • 2015年08月13日 14:15
  • 2074

Linux可重入函数

1、可重入函数     可重入函数指的是可以被中断的函数。也就是说,可以在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段代码,而返回控制时不会出现什么错误;而不可重入的函数由于使用了...
  • qq_20480611
  • qq_20480611
  • 2015年11月22日 09:39
  • 458

可重入函数与不可重入函数概念以及编写规范

不可重入怎么改改成可重入函数。一个可重入的函数简单来说就是可以被中断的函数,也就是说,可以在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段代码,而返回控制时不会出现什么错误;而不可重入的函...
  • xy010902100449
  • xy010902100449
  • 2015年06月12日 21:32
  • 2009

函数的可重入性理解

最近,项目要求可能需要做博通的交换芯片的驱动程序,涉及到多用户同时进行操作,和大量的数据处理,因此在进行代码架构的时候需要进行前期简单的验证设计。考虑到一点就是程序设计的可重入性。经过简单的搜索,在维...
  • wenchao126
  • wenchao126
  • 2013年01月05日 10:23
  • 3594

【总结】可重入函数

概要可重入函数,顾名思义,就是多次调用,执行的结果是一致的。在单任务或单线程且没有中断的系统中,程序是顺序执行的,就不存在可重入性的问题。 而在多任务或多线程的系统中,多任务可以同时调用同一函数,即...
  • iluzhiyong
  • iluzhiyong
  • 2016年07月03日 20:07
  • 529

函数可重入性(Reentrancy)概念详解

1.什么是可重入性 可重入的函数必须满足以下三个条件: (1)可以在执行的过程中被打断; (2)被打断之后,在该函数一次调用执行完之前,可以再次被调用(或进入,reentered)。 (3)再次调用执...
  • acs713
  • acs713
  • 2014年02月27日 11:05
  • 12851

Java多线程01_可重入函数、可重入锁

1、简单介绍可重入函数和编码注意事项。 2、jdk可重入锁介绍及递归调用的示例。 3、实现自己的可重入锁。...
  • coffeelifelau
  • coffeelifelau
  • 2016年07月09日 02:40
  • 1053

可重入函数的深入理解以及printf的可重入性

这个概念在嵌入式操作系统中比较重要,由于存在任务的调度,它实时系统,可剥夺型内核中是危险的,如同一个安静的水雷。可能会被触发,也可能安然无恙。由于它运行结果的不可预期性,会使系统带来隐患。 ...
  • u012138828
  • u012138828
  • 2014年08月28日 21:05
  • 989

可重入函数与线程安全的区别与联系

•概念 重入:即重复调用,函数被不同的流调用,有可能会出现第一次调用还没返回时就再次进入该函数开始下一次调用。 可重入:当程序被多个线程反复执行,产生的结果正确。 如果一个函数只访问自己的局部变...
  • hanjing_1995
  • hanjing_1995
  • 2016年07月17日 16:53
  • 2294

函数的可重入和不可重入

https://www.ibm.com/developerworks/cn/linux/l-reent.html这是一篇描述重入函数和不可重入函数的文章。先把他copy过来: 在早期的编程中,不可重...
  • qq_29344757
  • qq_29344757
  • 2017年04月15日 18:26
  • 386
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:可重入函数
举报原因:
原因补充:

(最多只允许输入30个字)