gpt4 book ai didi

operating-system - 什么样的代码可以称为 "re-entrant"?

转载 作者:行者123 更新时间:2023-12-03 10:33:01 24 4
gpt4 key购买 nike

有人能告诉我什么代码可以称为“重入”代码吗?

我在阅读一些实时操作系统时遇到了这个词。为了使代码成为“可重入”代码,必须遵守哪些规则?

最佳答案

通常,可重入代码块是可以在较早的调用完成之前由另一个参与者输入的代码块,而不会影响第一个参与者通过代码所采用的路径。也就是说,可以在代码已经运行时重新输入代码并仍然产生正确的结果。

在大多数情况下,“参与者”是同一进程的线程,但 的概念thread safety 和可重入略有不同:并非每个线程安全 block 都是可重入的,但每个可重入 block 都是线程安全的。也就是说,可重入性是比线程安全性更强的属性。这里是 a good example 来自 Raymond Chen 关于代码块如何是线程安全但不可重入的。

当代码是递归的时,有一种特殊情况:正如 Marc Gravell 指出的那样,同一个参与者在其自己的调用完成之前调用代码。所有正确的递归 block 都是可重入的;当然,并不是每个可重入 block 都是递归的。

关于operating-system - 什么样的代码可以称为 "re-entrant"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2274254/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com