我正在寻找一种方法来锁定C程序中的变量。事实上,这个变量是由一个线程循环设置的,但另一方面我在我的主体中有一个无限循环,他正在读取这个变量。
无论如何都要执行此操作?
答案 0 :(得分:1)
考虑互斥:
volatile int var=0;
pthread_mutex_t mtx=PTHREAD_MUTEX_INITIALIZER;
读取变量:
pthread_mutex_lock(&mtx);
local_var=var;
pthread_mutex_unlock(&mtx);
设置变量:
pthread_mutex_lock(&mtx);
var=19;
pthread_mutex_unlock(&mtx);
如果您正在编写线程应用程序,那么这就是您需要的 - 您有一个pthreads标记。