要求
实现在两个子线程通过全局变量传递数据:即在一个子线程中对全局变量的成员进行赋值,在另一个子线程中对全局变量的成员进行取值并显示。
体会同一进程的不同线程共享进程所拥有的全部资源的特性。
思路
- 首先,定义一个全局结构类型和对应的变量,定义两个Pthread_t类型变量来保存两个子线程的id。再定义一个主函数和两个用于创建子线程的对应函数。
- 在主函数中创建两个函数对应的子线程并对创建是否成功进行判断,创建成功后,等待显示子线程结束进程才结束。
- 在调用子线程对应函数内要打印进入该子进程的特殊信息。调用赋值子进程时分别对全局变量中相应成员赋值,调用显示子进程时取出全局变量中的值并显示。
实现代码
#include <stdio.h>
#include <pthread.h>
#include <stdlib.h>
#include <unistd.h>
struct member
{
int a;
char *s;
}*p; //定义一个全局变量
void *create1(void *arg) {
printf("Thread_1 created successfully\n");