全站数据
8 4 2 0 5 8 1

什么是C语言的可重入函数

会计城社区 | 简单学习,快乐成才!         
问题更新日期:2024-10-19 01:46:07

问题描述

什么是C语言的可重入函数求高手给解答
精选答案
最佳答案

从字面上的意思就是,可以重复进入。可重入是在多任务系统下的概念,意思是这个函数可以在运行到任意位置的时候被中断去执行其他任务,并且返回的时候不会出现任何错误。为什么在多任务的时候才有这种概念。

我举个例子,我们定义了一个叫func的函数,同时定义了两个线程,两个线程都调用了func,那么就存在这种情况,线程1正在执行func的时候,线程2开始执行func了,导致两个时刻两个线程都在执行func,正常情况下两个都能执行成功,并且没有错误,我们就认为func是可重入的。

但是如果func使用了公共资源,比如读取同一个文件,或者访问了同一个全局变量,这时候就会导致两个线程访问公共资源时发生冲突,这样的函数就是不可重入的。