什么是可重入程序?举出一个不重入程序的例子

什么是可重入程序?举出一个不重入程序的例子,第1张

若一个程序或子程序可以安全的被并行执行,则称其为可重拍悄入(reentrant或re-entrant)的;即,当该子程序正在运行时,可以再次进入并执行它。若一个函数是可重入的,则该函数:不能含有静态(全局)非常量数据。 不能返回静态(全局)非常量数据的地址。 只能处理由调用者提供的数据。 不能依赖于单实例模式资源的锁。 不袭猜渣能调用不可重入的函数。 多'用户/对象/进程优先级'以及多进程一般会使得对可重入代码的控制变得复杂。同时,IO代码通常不是可重入的,因为他们依赖于像磁盘这样共享的、单独的资源。可重入性是函数编程语言的关键特性之一。 例子在以下的C语言代码中,函数f和函数g都不是可重入的。int g_var = 1int f(){ g_var = g_var + 2 return g_var}int g(){ return f() + 2}以上代码中,f使用了全局变量 g_var,所以,如果两个线程同时执行它并访问兆吵g_var,则返回的结果取决于执行的时间。因此,f不可重入。而g调用了f,所以它也不可重入。稍作修改后,两个函数都是可重入的:int f(int i){ return i + 2}int g(int i){ return f(i) + 2}

这个你是需要懂程序里面誉腔一个叫做调用的技术的,在网站开源程序里面有一个模版管理的地方,这个是可以增加或者修改模版代码的颂虚薯!如果你是自己做的网页,这个需要你知道模版要怎么野者改,希望采纳


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12212592.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-21
下一篇2023-05-21

发表评论

登录后才能评论

评论列表(0条)

    保存