有关pthread_jion()函数的用法,请注意。

本文详细解析了pthread_create和pthread_join函数的使用方法及注意事项。重点介绍了pthread_create函数的原型、参数含义,并强调了最后一个参数传递给线程函数的重要性和正确方式。同时,文章也解释了pthread_join函数的第二个参数的用途。

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


这里要注意的是
1.pthread_create()原型:
int pthread_create(pthread_t *thread, const pthread_attr_t *attr,
                   void *(*start_routine) (void *), void *arg);
其中,最后一个参数要传入给线程里的函数的参数地址。为了代码严谨,程序里的pthread_create ()的最后个参数可以写成(void *)&a.
pthread_jion()里的第二个参数是NULL或者是一个指针。线程里的函数调用的返回值 并不要求是指针。可以是void,int.
任务描述 本关任务:程序 3.c 使用 2 个线程计算从 1 到 200 的累加和,请将其改为用 3 个线程实现, 3 个线程分别完成函数 p1、p2 和 p3 的计算任务,总体功能不变。 相关知识 为了完成本关任务,你需要掌握: 1.多线程程序如何编译; 2.pthread_create 函数的各个参数的含义是什么; 3.主线程结束时,子线程会被杀死吗。 实验准备 3.c文件存放在/data/workspace/myshixun/exp1中。 多线程程序如何编译 用 pthread 库实现的多线程程序,可以使用 gcc 来编译,且需加上 -pthread 参数: pthread_create 函数的各个参数的含义是什么 该函数的原型和各参数的含义如下: int pthread_create(pthread_t *tidp, const pthread_attr_t *attr, (void*)(*start_rtn)(void*), void *arg); 第一个参数为指向线程标识符的指针; 第二个参数用来设置线程属性; 第三个参数是线程运行函数的起始地址; 最后一个参数是运行函数的参数。 主线程结束时,子线程会被杀死吗 是的,如果主线程结束时,子线程还没有结束,那么子线程会被操作系统杀死。可以在主线程中使用 pthread_join 来等待子线程结束。 编程要求 程序 3.c 使用 2 个线程计算从 1 到 200 的累加和,请将其改为用 3 个线程实现, 3 个线程分别完成函数 p1、p2 和 p3 的计算任务,总体功能不变。 (请将修改之后的程序 3.c 保存到 myshixun 文件夹下再点击评测。)
05-13
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值