线程安全与可重入函数

By | 2019年9月14日

我个人对可重入函数的理解如下:

  • 可重入函数需要指明可重入对象,分为线程可重入函数和信号可重入函数
  • 线程可重入函数是可以被多个线程同时调用、且保证安全的函数,也叫做线程安全函数
  • 信号可重入函数是在信号处理程序中保证调用安全的函数,也叫做异步信号安全函数

下图是APUE书中所说的POSIX.1中不能保证线程安全的函数,换而言之,未列入图中的函数都是线程可重入函数。

通过和信号可重入函数对比,不难得出以下结论:

  • 所有的信号可重入函数,都是线程安全函数
  • 线程安全,异步信号未必安全

请关注公众号获取更多资料

发表评论