注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看,没有帐号?注册账号
x
大家好,本人没有学过OS,试图理解Event/Fire这道面经,下面是我一个门外汉的思路,希望大家能够纠正我的任何错误观点,也希望能够对其他人有些帮助:
先讲一下我理解的基本概念:我用的是python,锁不属于任何一个threading,是python中比较底层的Object,当任何一个threading占有锁之后,都算是锁上了。当锁被占用时,其他的theading如果遇到需要占用,就要一直等(被block),等到这个threading把锁释放出来才能继续向下执行。一般acquire和release都是包住需要保护的代码的,但有的时候会出现acquire之后立即release的情况,这种情况下是一个barrier,因为同一个锁可以在不同的位置进行acquire和release,所以如果另外一个threading在别的代码段acquire了这个锁,而这个threading正好运行到acquire之后立即release这两行,就要等到那个theading执行完另一个上锁了的代码块并release之后才能进行。
求大神解答!
补充内容 (2020-12-2 01:39):
被管理员挪区了,这道题是PureStorage的面经~ |