Linux多线程编程-线程间参数传递

这篇博客探讨了如何在Linux环境下使用多线程通过全局变量进行数据传递。作者定义了一个全局结构体,创建两个子线程,一个负责赋值,另一个负责读取并显示。在主函数中成功创建并运行这两个线程,展示了线程间共享资源的特性。运行结果显示,全局变量的值被正确地在子线程间传递。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

要求

实现在两个子线程通过全局变量传递数据:即在一个子线程中对全局变量的成员进行赋值,在另一个子线程中对全局变量的成员进行取值并显示。
体会同一进程的不同线程共享进程所拥有的全部资源的特性。

思路

  • 首先,定义一个全局结构类型和对应的变量,定义两个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");
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值