【发布时间】:2021-12-20 19:55:26
【问题描述】:
我想创建 2 个线程,它们正在使用一个全局变量,我的代码:
#include <stdio.h>
#include <pthread.h>
#include <stdlib.h>
#include <unistd.h>
int var = 0; //
pthread_t threads[2];
void* function(){
if(var % 2==0){
var +=2;
}
printf("Addresse %d with var %d\n", &var, var);
}
int main() {
for(int i = 0; i < 2; i++){
pthread_create(&threads[i], NULL, &function, NULL);
}
pthread_exit(NULL);
}
我用 for 循环创建了 2 个线程。我想让两个线程都使用全局变量。一个线程增加 2,另一个线程增加 2。我用 printf 看到,它们都使用相同的地址,但输出不同。如何让每个线程执行不同的任务?
【问题讨论】:
标签: c linux multithreading pthreads global-variables