什么是可重入程序?举出一个不重入程序的例子若一个程序或子程序可以安全的被并行执行,则称其为可重入(reentrant或re-entrant)的;即 , 当该子程序正在运行时,可以再次进入并执行它 。若一个函数是可重入的,则该函数:不能含有静态(全局)非常量数据 。不能返回静态(全局)非常量数据的地址 。只能处理由调用者提供的数据 。不能依赖于单实例模式资源的锁 。不能调用不可重入的函数 。多'用户/对象/进程优先级'以及多进程一般会使得对可重入代码的控制变得复杂 。同时,IO代码通常不是可重入的,因为他们依赖于像磁盘这样共享的、单独的资源 。可重入性是函数编程语言的关键特性之一 。例子在以下的C语言代码中,函数f和函数g都不是可重入的 。int g_var = 1;int 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;}
关于C语言不可重入函数列表和c++不可重入函数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- 阿里巴巴的服务器,阿里巴巴的服务器有多大
- 荣耀60p鸿蒙系统怎么样,老荣耀v6鸿蒙系统
- ps4插入u盘怎么识别,ps4如何读取u盘
- 电信itv时间服务器,时间服务器设置机顶盒
- vb.netjs结果 vbnet foreach
- 拼多多下载安装免费,拼多多下载安装免费下载个拼多多
- 类似383棋牌的棋牌游戏的简单介绍
- python如何输出冒号后的,python冒号等于
- c语言定义多个函数调用 c语言定义多个变量