对于线程同步:互斥量、信号量、读写锁、条件变量。(1)互斥量:mutex值只能取0或1,加锁lock(减1),解锁unlock(加1),对于临界区先加锁后解锁,相当于一个时刻只有一个线程能访问临界区。(2)信号量:是互斥量的加强版,资源个数n可以预设,加锁(sem_wait),解锁(sem_post),区别:信号量某一时刻最多n个线程访问临界区。(3)条件变量:目的是为了防止恶意竞争,与互斥量一起使用,互斥量失败后会一直尝试,与其这样,还不如让它去睡觉,当临界区可用才唤醒它(pthread_cond_signal)。(4)读写锁:写锁(pthread_rwlock_wrlock)权限高于读锁,有人在写,其他读和写全部阻塞;允许多个读(pthread_rwlock_rdlock),应用在读线程多的场景
点赞

相关推荐

不愿透露姓名的神秘牛友
2024-12-29 00:19
快手 Java工程师 26.0k*16.0
点赞 评论 收藏
分享
QwQqvq:这种直接口头上答应,骗面试,面完了直接拉黑,相当于给自己攒面经了(
点赞 评论 收藏
分享
嗷佛快来快来快快快来:我当时就是听了别人的谣言,环境的大变,左右摇摆不定,到最后一事无成。我也给你提不了什么有效的建议,因为我自己就是败犬。但是我确实是从cpp转到了Java,cpp也做过项目,了解过具体的细分方向。如果你感兴趣,不会拦你。因为只要一件事情能坚持下去 就会发光
点赞 评论 收藏
分享
牛客网
牛客企业服务