我個人對可重入函數的理解如下: 可重入函數需要指明可重入對象,分為線程可重入函數和信號可重入函數 線程可重入函數是可以被多個線程同時調用、且保證安全的函數,也叫做線程安全函數 信號可重入函數是在信號處理程式中保證調用安全的函數,也叫做非同步信號安全函數 下圖是APUE書中所說的POSIX.1中不能保證 ...
我個人對可重入函數的理解如下:
- 可重入函數需要指明可重入對象,分為線程可重入函數和信號可重入函數
- 線程可重入函數是可以被多個線程同時調用、且保證安全的函數,也叫做線程安全函數
- 信號可重入函數是在信號處理程式中保證調用安全的函數,也叫做非同步信號安全函數
下圖是APUE書中所說的POSIX.1中不能保證線程安全的函數,換而言之,未列入圖中的函數都是線程可重入函數。
通過和信號可重入函數對比,不難得出以下結論:
- 所有的信號可重入函數,都是線程安全函數
- 線程安全,非同步信號未必安全