摘要:
可重入性和线程安全性均与函数处理资源的方式有关。 但是,它们是不同的:可重入函数既不会在连续调用中存储静态数据,也不会返回指向静态数据的指针。 对于这种类型的函数,调用方将提供函数所需的所有数据,如指向任何工作区的指针。 这意味着,函数的多个并发调用不会相互干扰。注意:可重入函数不能调用非可重入函数。线程安全函数使用锁 保护共享资源,以防止对其进行并发访问。 线程安全性只涉及函数实现方式,而不涉及其外部接口。 在 C 中,局部变量是在堆栈上动态分配的。 因此,任何不使用静态数据或其他共享资源的函数通常都是线程安全的。在 ARM 库中,函数可能是线程安全的,如下所示:某些函数从来都不是线程安全的 阅读全文