1、线程间的数据共享
(1)文件共享:因为文件存储在PCB里面,有文件表数组的存在。任何线程打开的文件,其他线程都可以通过文件描述符操作文件。
代码验证:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <assert.h>
#include <pthread.h>
void* pthread_fun(void *arg)
{
printf("fun pid= %d\n",getpid());
}
void main()
{
pthread_t id;
int res=pthread_create(&id,NULL,pthread_fun,NULL);
assert(res==0);
printf("main pid = %d\n",getpid());
pthread_exit(NULL);
}
打印结果:
man pid = 3163
fun pid = 3163
所以文件是共享的。
(2)全局变量共享
代码验证: