线程1-线程基本操作

本文介绍了线程的基本概念,强调线程是进程执行的最小单位,涉及线程创建、线程终止和线程取消等核心操作。在创建线程时,需要指定线程属性、执行函数和参数。线程终止包括线程返回、被其他线程取消或调用pthread_exit。线程取消可设置为异步或推迟,并通过pthread_cancel执行。此外,还讨论了线程的取消状态和类型以及线程分离的重要性。
摘要由CSDN通过智能技术生成

一 基本概念:

线程是进程执行的最基本单位,是一个正在运行的函数,通常包括:main线程与兄弟线程。线程间通信共享进程虚拟内存空间。

常用的线程标识:

pthread_t

常用api:

比较线程pid:
int pthread_equal(pthread_t t1, pthread_t t2);
返回线程标识:
pthread_t pthread_self(void);

二 线程常见状态与操作:

1 线程创建

int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void *), void *arg);

其中:线程回填标识、线程属性(常见NULL),线程执行函数入口地址、函数的参数。成功返回0,失败返回错误码。

2 线程的终止

1)线程从启动例程返回,返回值是线程的退出码
2)线程可以被同一个进程中的其他线程取消
3)线程调用void pthread_exit(void *value_ptr);

栈的清理 防止线程意外退出,挂上回调函数,等到栈清理时执行内容
void pthread_cleanup_push(void (*cleanup_routine)(void *), void *arg);
void pthread_cleanup_pop(int execute);

3 线程的取消

先取消后收尸

int pthread_cancel

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值