linux C 三、线程

本文详细介绍了Linux C编程中线程的创建、回收、结束和取消,包括pthread_create、pthread_join、pthread_exit和pthread_cancel等函数的使用。此外,还探讨了线程同步和互斥的概念,讲解了信号量sem_init、sem_wait和sem_post的运用,以及互斥锁pthread_mutex_init、pthread_mutex_lock和pthread_mutex_unlock的实现,确保多线程环境下的数据安全。
摘要由CSDN通过智能技术生成

一、线程 基本API(任意一个线程exit会导致整个线程退出)
1.1线程库 pthread
注意:要做同步和互斥
调用API
1)创建线程 pthread_create
#include <pthread.h>
int pthread_create(pthread_t *thread, const
pthread_attr_t *attr, void *(*routine)(void *), void *arg);

成功返回0,失败时返回错误码 (注意,这里不可以perror,只能用strerror)
thread 线程对象
attr 线程属性,NULL代表默认属性
routine 线程执行的函数
arg 传递给routine的参数 ,参数是void * ,注意传递参数格式,

pthread_t pthread_self(void) 查看自己的TID

2)线程回收 pthread_join 或者detach也行
#include <pthread.h>
int pthread_join(pthread_t thread, void **retval);

成功返回0,失败时返回错误码
thread 要回收的线程对象
调用线程阻塞直到thread结束
*retval 接收线程thread的返回值

3)线程结束 pthread_exit (大部分线程一直在跑可以不用)
#include <pthread.h>
void pthread_exit(void *retval);

结束当前线程
retval可被其他线程通过pthread_join获取
线程私有资源被释放

4ÿ

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值