可重入函数:函数可多线程同时调用,一般是在只有局部变量的函数中
不可重入函数:函数一般情况下不可多线程同时调用,这样的函数中一般有全局、静态变量,而这样就涉及到了变量的保护问题,所以需要加入互斥锁/信号量/中断。
可重入函数:
void swap_temp(int* p int* q) { int temp; temp = *p; *p = *q; *q = temp; }
不可重入函数:
int g_temp; void swap_temp(int* p, int*q) { pthread_mutex_lock(&lock); g_temp = *p; *p = *q; *q = g_temp; pthread_mutex_unlock(&lock); }