linux c 线程锁

本文介绍了Linux C编程中线程锁的使用,包括初始化、销毁、加锁、解锁及try锁。同时,也讲解了读写锁的概念以及其互斥关系。此外,还详细阐述了条件变量的初始化、销毁、等待和通知操作,它是实现线程间同步和通信的重要工具。
摘要由CSDN通过智能技术生成
线程锁初始化:int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *attr)
如果是非动态锁结构,也可以使用PTHREAD_MUTEX_INITIALIZER赋值进行初始化。
线程锁销毁:int pthread_mutex_destroy(pthread_mutex_t *mutex)
锁:int pthread_mutex_lock(pthread_mutex_t *mutex)
解锁:int pthread_mutex_unlock(pthread_mutex_t *mutex)
try锁:int pthread_mutex_trylock(pthread_mutex_t *mutex)

类似的还有读写锁:
pthread_rwlock_init
pthread_rwlock_destroy
pthread_rwlock_rdlock
pthread_rwlock_wrlock
pthread_rwlock_unlock
pthread_rwlock_tryrdlock
pthread_rwlock_trywrlock
写锁锁住时,读锁和写锁都回阻塞;而读锁锁住时,写锁会阻塞,读锁可以成功。

条件变量:
使用锁时,还可以使用条件变量,阻塞等待条件发生,当条件发生时,进行信号量的通知,时阻塞的代码继续走下去,使用pthread_cond_wait进行条件阻塞,这时之前加的锁是被放开的,可以在条件改变的地方进行加锁,然后再改变条件和进行条件通知。
初始化:int pthr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值