可重入:一个函数可以同时被调用,不会有影响
线程安全:一个函数可以被多线程同时调用,不会有影响.
可重入>线程安全,需要比线程安全更强的条件.
一个函数是可重入的,一定是线程安全的
一个函数是线程安全的,不一定是可重入的
=============================
比如:
malloc不是异步-信号安全,但是线程安全的,因此其不是可重入的
malloc是线程安全的,是因为它加了线程锁保护了其中的临界区,但是它不是可重入的,因为里面有静态变量,如果同时被进入,那么就会发生错乱.
大致上,一个函数如果使用了静态变量,那么就是不可重入的.