7
可重入函数到底是什么?
大多数 的 的 时代,再进入的定义转引自维基百科: 如果一个计算机程序或例程可以在之前的调用完成之前安全地再次调用(即可以安全地同时执行),则称为可重入 。要重入,可以使用计算机程序或例程: 必须不包含静态(或全局)非恒定数据。 不得将地址返回静态(或全局)非恒定数据。 必须仅对调用方提供的数据起作用。 绝对不能依赖于对单例资源的锁定。 不得修改自己的代码(除非在自己的唯一线程存储中执行) 不得调用非可重入计算机程序或例程。 如何安全定义? 如果一个程序可以安全地并发执行,是否总是意味着它是可重入的? 在检查代码的可重入功能时,应牢记的六点之间的共同点到底是什么? 也, 所有递归函数都是可重入的吗? 所有线程安全函数都可重入吗? 所有递归和线程安全函数都可以重入吗? 在写这个问题时,会想到一件事:再入和线程安全之类的术语是绝对绝对的,即它们是否具有固定的具体定义?因为,如果不是这样的话,这个问题就没有太大意义。