线程安全与可重入函数
我个人对可重入函数的理解如下:
- 可重入函数需要指明可重入对象,分为线程可重入函数和信号可重入函数
- 线程可重入函数是可以被多个线程同时调用、且保证安全的函数,也叫做线程安全函数
- 信号可重入函数是在信号处理程序中保证调用安全的函数,也叫做异步信号安全函数
下图是APUE书中所说的POSIX.1中不能保证线程安全的函数,换而言之,未列入图中的函数都是线程可重入函数。
通过和信号可重入函数对比,不难得出以下结论:
- 所有的信号可重入函数,都是线程安全函数
- 线程安全,异步信号未必安全