已有信号量,为啥还要搞一套互斥锁和条件变量?

RT
既然信号量可以用于线程,那么线程为什么要自己搞一套呢?

我记得《LInux/Unix系统编程手册》里好像提到过。。但手头没书,也想不起来了。求助各位朋友们。
全部评论
都是基于futex做的,所以本质是一样的都是在用户空间的玩意儿,然后sem类似与生产者消费者,比如同时sem_post多个,而互斥锁只能容纳一个,不然会deadlock?
点赞
送花
回复
分享
发布于 2017-08-25 19:01
一个是system V,一个是posix
点赞
送花
回复
分享
发布于 2017-08-25 18:06
秋招专场
校招火热招聘中
官网直投
信号量只能用来进程同步吧
点赞
送花
回复
分享
发布于 2017-08-25 18:21
互斥锁只能实现一个资源的互斥仿问,信号量可以实现多个同类资源的互斥访问
点赞
送花
回复
分享
发布于 2017-08-25 18:34
信号量不是用来进程同步的么
点赞
送花
回复
分享
发布于 2017-08-25 20:31
不是,信号量相当于多个线程共享一个int变量,基于这个实现同步;条件变量就把这个变量广义化了,你可以根据一个int,一个string,甚至一个bool状态同步。缺点就是条件变量需要你自己用一个互斥锁,维护这个被广义化了的变量
点赞
送花
回复
分享
发布于 2022-02-13 15:44

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务