再发一个多线程的面试题

苦逼码农 2014-08-30 06:19:03

面试题目记不清了,大概是说:

windows下 信号量和 SRWLOCK(共享模式) 有什么区别?

SRWLOCK 是有共享和独占的。


我的答案:


只有一个线程可以访问(即使在多核上),才叫独占。 SRWLOCK 有共享、独占两种。 信号量可以让多个线程去访问

某个资源, 所以信号量是类似SRWLOCK的共享方式。

另外: 信号量还有个作用,“通知”、“条件”的作用, 所以信号量还可以做condition variable
...全文
320 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿呆_ 2014-08-31
  • 打赏
  • 举报
回复
信号量的信号数量有意义,读写锁的共享数目一般没有意义 指的是信号量可以允许某个数量的线程同时访问(读,写) 读写锁分读锁和写锁,读锁可以允许无数线程同时去读(如果没有其它线程锁住写锁的话),写锁只允许一个线程去写(如果没有其它线程锁住读锁或写锁的话),所以数量没有意义。
苦逼码农 2014-08-31
  • 打赏
  • 举报
回复
有人知道吗?
苦逼码农 2014-08-30
  • 打赏
  • 举报
回复
苦逼码农 2014-08-30
  • 打赏
  • 举报
回复
引用 3 楼 my3439955 的回复:
个人看法: 你没有把握到面试官要考察的点,他考察的点就是说信号量可以多线程同时获取,读写锁也可以多线程同时获取,看起来很类似,有什么区别? 可以从两点作答 1、信号的获得者是彼此平等的,读写锁的获得者有两类,读者和写者,不是平等的 2、信号量的信号数量有意义,读写锁的共享数目一般没有意义
2、信号量的信号数量有意义,读写锁的共享数目一般没有意义 “什么意义? 是指多个线程可以拥有资源的访问权? 而读写锁不具备访问权概念? 是这样理解吗?”
  • 打赏
  • 举报
回复
个人看法: 你没有把握到面试官要考察的点,他考察的点就是说信号量可以多线程同时获取,读写锁也可以多线程同时获取,看起来很类似,有什么区别? 可以从两点作答 1、信号的获得者是彼此平等的,读写锁的获得者有两类,读者和写者,不是平等的 2、信号量的信号数量有意义,读写锁的共享数目一般没有意义
707wk 2014-08-30
  • 打赏
  • 举报
回复
不懂
苦逼码农 2014-08-30
  • 打赏
  • 举报
回复

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧