栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

信号量如何工作?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

信号量如何工作?

调为0时不起作用。3点时可以通话。(我在想Java)。

我再添加一些。许多人认为锁是(二进制)信号量(即-N =
1,因此信号量的值为0(保持)或1(不保持))。但这不是很正确。锁具有“所有权”的概念,因此它可能是“可重入的”。这意味着持有一个锁的线程被允许再次调用lock()(有效地将计数从0移到-1),因为该线程已经持有该锁并被允许“重新输入”。锁也可以是不可重入的。锁持有者应调用与lock()相同次数的unlock()。

信号量没有所有权的概念,因此尽管可以获取尽可能多的许可,但它们不能重入。这意味着线程在遇到值0时需要阻塞,直到有人增加信号量为止。

另外,在我所看到的(Java)中,您可以将信号量增加到大于N,这也与所有权有关:信号量没有所有权概念,因此任何人都可以给它更多许可。与线程不同,在线程中,只要线程在不持有锁的情况下调用unlock(),那都是错误。(在Java中,它将引发异常)。

希望这种思考方式有所帮助。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/414445.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号