编辑:此外,多个进程可以并行访问重入过程吗?
请提供一种与维基百科不同的解释方式,因为我不完全理解他们的描述,因此我的问题在这里
通常,这是通过仅使用在堆栈上声明的参数和局部变量来实现的(在C术语中,没有静态局部变量).在执行期间不锁定任何全局资源也很重要.
现在,你可能会问,“如果这样一个奇怪的事情会像往常一样多次运行?”嗯,这可能发生的一些方法是:
>例程是递归的(或者与其他一组例程相互递归).>它被另一个线程调用.>它被一个中断调用.
如果发生任何这些情况,并且例程正在修改全局(或C静态本地),则新执行可能会消除第一次执行所做的更改.例如,如果将该全局用作循环控制变量,则可能导致第一次执行,当它最终恢复时,循环错误的次数.