/*进程与线程共享数据*/
/*在一进程创建两个线程:线程1、线程2,测试三者之间的关系*./
#include <stdio.h>
#include <pthread.h>
/*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
结论:进程、线程之间共享数据