c 多线程

11 篇文章 0 订阅

c 线程

pthread_cancel  取消次线程

pthread_exit   主动退出次线程

pthread_self   获取自己的线程id

pthread_jion    阻塞等待指定线程id的次线程结束,同时回收次线程资源

pthread_detach   分离次线程,让次线程在结束时自动回收资源

注册进程退出处理函数

atexit()
	进程退出处理函数
	使用方法
		atexit(进程处理函数指针)

注册线程退出处理函数

pthread_cleanup_push 
	注册线程退出处理函数

pthread_cleanup_pop
	将压入栈中的退出处理函数弹出,然后执行

两个必须成对使用

弹栈线程退出出口i函数的几种条件
	主动调用 pthread_cleanup_pop(!0)
	调用pthread_cancel
	调用 pthread_exit 函数退出

return 退出不会弹栈

线程属性设置

线程可以设置的属性有
	设置绑定属性
	设置可分离属性
	设置线程堆栈属性
	设置调度优先级属性
	.....

线程互斥

互斥锁
	互斥锁试用步骤
		定义互斥锁
		初始化互斥锁
		加锁解锁(pthread_mutex_lock/pthread_mutex_unlock)
		进程退出时销毁互斥锁(pthread_mutex_destroy)

线程信号量

功能
	实现互斥
	    sem_init     信号量初始化
		sem_wait  	 对某个信号量进行阻塞p操作
		sem_pos   	 对某个信号量进行v操作
		sem_destroy  删除某个信号量
		
	实现同步

信号量实现同步

在这里插入图片描述

条件变量

pthread_cond_init 
	初始化条件变量
		pthread_cond_t cond;
		pthread_cond_init(&cond, NULL);
	或者
		pthread_cond_t cond = PTHREAD_COND_INITIALIZER;


等待条件的函数
	pthread_cond_wait
		检测条件变量,如果cond没有被设置,pthread_cond_wait 会休眠(阻塞),直到条件准备号才被唤醒
	参数
		- cond :条件变量
		- mutex:和条件变量配合使用的互斥锁

设置条件变量的函数
	pthread_cond_signal
		设置cond,唤醒 pthread_cond_wait 函数
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值