共计 749 个字符,预计需要花费 2 分钟才能阅读完成。
一个工作了 3 年的粉丝,去一个互联网公司面试,后果被面试官怼了。
面试官说:”这么简略的问题你都不晓得?没法聊了,回去等告诉吧“。
这个问题是:”什么是可重入锁,以及它的作用是什么?“
对于这个问题,来看看普通人和高手的答复吧
普通人:
嗯。。。。。。。。。。。。。。。。。。
高手:
好的。
可重入是多线程并发编程外面一个比拟重要的概念,
简略来说,就是在运行的某个函数或者代码,因为抢占资源或者中断等起因导致函数或者代码的运行中断,
期待中断程序执行完结后,从新进入到这个函数或者代码中运行,并且运行后果不会受到影响,那么这个函数或者代码就是可重入的。
而可重入锁,简略来说就是一个线程如果抢占到了互斥锁资源,在锁开释之前再去竞争同一把锁的时候,不须要期待,只须要记录重入次数。
在多线程并发编程外面,绝大部分锁都是可重入的,比方 Synchronized、ReentrantLock 等,然而也有不反对重入的锁,比方 JDK8 外面提供的读写锁 StampedLock。
锁的可重入性,次要解决的问题是防止线程死锁的问题。
因为一个曾经取得同步锁 X 的线程,在开释锁 X 之前再去竞争锁 X 的时候,相当于会呈现本人要期待本人开释锁,这很显然是无奈成立的。
以上就是我对这个问题的了解。
总结
对于这个问题,其实是考查求职者的基础知识。
互联网大厂对根底的考查会特地深,有必要的话还是须要在工作之外去多花一点工夫钻研。
并且,对于 3 年工作教训,考查这类问题也不算过分。
如果有任何面试问题、职业倒退问题、学习问题,都能够私信我。
版权申明:本博客所有文章除特地申明外,均采纳 CC BY-NC-SA 4.0 许可协定。转载请注明来自
Mic 带你学架构
!
如果本篇文章对您有帮忙,还请帮忙点个关注和赞,您的保持是我一直创作的能源。欢送关注同名微信公众号获取更多技术干货!