一个工作了3年的粉丝,去一个互联网公司面试,后果被面试官怼了。

面试官说:”这么简略的问题你都不晓得? 没法聊了,回去等告诉吧“。

这个问题是: ”什么是可重入锁,以及它的作用是什么?“

对于这个问题,来看看普通人和高手的答复吧

普通人:

嗯。。。。。。。。。。。。。。。。。。

高手:

好的。

可重入是多线程并发编程外面一个比拟重要的概念,

简略来说,就是在运行的某个函数或者代码,因为抢占资源或者中断等起因导致函数或者代码的运行中断,

期待中断程序执行完结后,从新进入到这个函数或者代码中运行,并且运行后果不会受到影响,那么这个函数或者代码就是可重入的。

而可重入锁,简略来说就是一个线程如果抢占到了互斥锁资源,在锁开释之前再去竞争同一把锁的时候,不须要期待,只须要记录重入次数。

在多线程并发编程外面,绝大部分锁都是可重入的,比方Synchronized、ReentrantLock等,然而也有不反对重入的锁,比方JDK8外面提供的读写锁StampedLock。

锁的可重入性,次要解决的问题是防止线程死锁的问题。

因为一个曾经取得同步锁X的线程,在开释锁X之前再去竞争锁X的时候,相当于会呈现本人要期待本人开释锁,这很显然是无奈成立的。

以上就是我对这个问题的了解。

总结

对于这个问题,其实是考查求职者的基础知识。

互联网大厂对根底的考查会特地深,有必要的话还是须要在工作之外去多花一点工夫钻研。

并且,对于3年工作教训,考查这类问题也不算过分。

如果有任何面试问题、职业倒退问题、学习问题,都能够私信我。

版权申明:本博客所有文章除特地申明外,均采纳 CC BY-NC-SA 4.0 许可协定。转载请注明来自 Mic带你学架构
如果本篇文章对您有帮忙,还请帮忙点个关注和赞,您的保持是我一直创作的能源。欢送关注同名微信公众号获取更多技术干货!