各位请进,C语言中的“重入”,该怎么理解

slwj 2011-07-04 11:57:37
有如下语句,这里的重入指的什么啊,该怎么讲,谢谢各位!
[Quote=引用]
③在许多的处理器/编译器中,浮点一般都是不可重入的。有些处理器/编译器需要让额处的寄存器入栈,有些处理器/编译器就是不允许在ISR中做浮点运算。此外,ISR应该是短而有效率的,在ISR中做浮点运算是不明智的;

④与第三点一脉相承,printf()经常有重入和性能上的问题。

[/Quote]
...全文
317 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
pathuang68 2011-07-05
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 anyidan 的回复:]

引用 5 楼 zhao4zhong1 的回复:

个人理解:
“可重入”和“线程安全”不是一回事!
“可重入”是指发生“当一个函数正执行到中间某步时,另一道程序又从该函数开头开始执行”情况时,函数的结果不受影响。
“线程安全”是指一个或多个函数在不同线程中协同工作时,最终结果不受线程调度影响。


学习了

最近想看看 c++,请问赵哥: C++是否有类似 the c pro……
[/Quote]
BS写的 The C++ Programming Language:)
赵4老师 2011-07-05
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 anyidan 的回复:]
引用 5 楼 zhao4zhong1 的回复:

个人理解:
“可重入”和“线程安全”不是一回事!
“可重入”是指发生“当一个函数正执行到中间某步时,另一道程序又从该函数开头开始执行”情况时,函数的结果不受影响。
“线程安全”是指一个或多个函数在不同线程中协同工作时,最终结果不受线程调度影响。


学习了

最近想看看 c++,请问赵哥: C++是否有类似 the c prog……
[/Quote]
C++的书我只细看过《C++ Primer》
据我个人理解C++知识点大体分如下几个方向:
·和类相关的各种语法(构造/析构、单/多继承、多态……)
·模版和STL
·MFC
·COM
·OpenGL、DirectX等图形相关库
·其它
至于cin、cout、fstream、string不学也罢。
skyworth98 2011-07-05
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zhao4zhong1 的回复:]
个人理解:
“可重入”和“线程安全”不是一回事!
“可重入”是指发生“当一个函数正执行到中间某步时,另一道程序又从该函数开头开始执行”情况时,函数的结果不受影响。
“线程安全”是指一个或多个函数在不同线程中协同工作时,最终结果不受线程调度影响。
[/Quote]

个人理解,可重入函数在调用参数相同的情况下,多次调用结果应该相同。
luciferisnotsatan 2011-07-05
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zhao4zhong1 的回复:]

个人理解:
“可重入”和“线程安全”不是一回事!
“可重入”是指发生“当一个函数正执行到中间某步时,另一道程序又从该函数开头开始执行”情况时,函数的结果不受影响。
“线程安全”是指一个或多个函数在不同线程中协同工作时,最终结果不受线程调度影响。
[/Quote]
反正就是,可重入的函数,多线程调用该函数是按安全的。
skyworth98 2011-07-05
  • 打赏
  • 举报
回复
sp, 就是这个样子的

[Quote=引用 3 楼 babilife 的回复:]
重入即表示重复进入,首先它意味着这个函数可以被中断,其次意味着它除了使用自己栈上的变量以外不依赖于任何环境(包括static),这样的函数就是purecode(纯代码)可重入,可以允许有该函数的多个副本在运行,由于它们使用的是分离的栈,所以不会互相干扰。

看这里http://www.cppblog.com/prayer/archive/2009/07/05/89270.html
[/Quote]
AnYidan 2011-07-05
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zhao4zhong1 的回复:]

个人理解:
“可重入”和“线程安全”不是一回事!
“可重入”是指发生“当一个函数正执行到中间某步时,另一道程序又从该函数开头开始执行”情况时,函数的结果不受影响。
“线程安全”是指一个或多个函数在不同线程中协同工作时,最终结果不受线程调度影响。
[/Quote]

学习了

最近想看看 c++,请问赵哥: C++是否有类似 the c programming langague 在 c 中那样地位的书
hzhxxx 2011-07-04
  • 打赏
  • 举报
回复

也即 线程安全
至善者善之敌 2011-07-04
  • 打赏
  • 举报
回复
重入即表示重复进入,首先它意味着这个函数可以被中断,其次意味着它除了使用自己栈上的变量以外不依赖于任何环境(包括static),这样的函数就是purecode(纯代码)可重入,可以允许有该函数的多个副本在运行,由于它们使用的是分离的栈,所以不会互相干扰。

看这里http://www.cppblog.com/prayer/archive/2009/07/05/89270.html
fendoulinuxc 2011-07-04
  • 打赏
  • 举报
回复
等待回复啊
金刚葫芦娃 2011-07-04
  • 打赏
  • 举报
回复
帮顶,等待高人.
healer_kx 2011-07-04
  • 打赏
  • 举报
回复
多线程的概念。
自由建客 2011-07-04
  • 打赏
  • 举报
回复
可被中断且可被并用,说白了就是它的结果只跟它入口时的参数状态有关,执行过程中外界对它没有影响?
赵4老师 2011-07-04
  • 打赏
  • 举报
回复
个人理解:
“可重入”和“线程安全”不是一回事!
“可重入”是指发生“当一个函数正执行到中间某步时,另一道程序又从该函数开头开始执行”情况时,函数的结果不受影响。
“线程安全”是指一个或多个函数在不同线程中协同工作时,最终结果不受线程调度影响。

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧