关于线程、进程之间的数据共享

/*进程与线程共享数据*/

/*在一进程创建两个线程:线程1、线程2,测试三者之间的关系*./

#include

#include

/*pthread.c*/

10 static int m;
 11 void *pthread1(void *arg)
 12 {
 13     printf("pthread1:m is %d/n",m);
 14     m=5;
 15     printf("pthread1:%d/n",m);
 16     return (void *)0;
 17 }
 18 void *pthread2(void *arg)
 19 {
 20     printf("pthread2:%d/n",m);
 21     return (void *)0;
 22 }
 23 int main(int argc,char *argv[])
 24 {
 25     pthread_t id1,id2;
 26     m=4;
 27     printf("m=%d/n",m);
 28     int res=0;
 29     res=pthread_create(&id1,NULL,(void *)pthread1,NULL);
 30     if(res)
 31     {

 32         perror("pthread1 create");
 33         exit(1);
 34     }
 35     printf("m=%d/n",m);
 36     res=pthread_create(&id2,NULL,(void *)pthread2,NULL);
 37     if(res)
 38     {
 39         perror("pthread2 create");
 40         exit(1);
 41     }
 42     printf("%d/n",m);
 43     return 0;
 44 }

gcc pthread.c -lpthread

./a.out

结果

m=4
pthread1:m is 4
pthread1:5
m=5
pthread2:5
5
结论:进程、线程之间共享数据

你可能感兴趣的:(linux)