函数的多线程调用——可重入函数和不可重入函数。
可重入函数:函数可多线程同时调用,一般是在只有局部变量的函数中
不可重入函数:函数一般情况下不可多线程同时调用,这样的函数中一般有全局、静态变量,而这样就涉及到了变量的保护问题,所以需要加入互斥锁/信号量/中断。
可重入函数:
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); }
懒惰不会让你一下子跌到
但会在不知不觉中减少你的收获;
勤奋也不会让你一夜成功
但会在不知不觉中积累你的成果
越努力,越幸运。