【大厂真题】并发编程面试集合(一)

小鱼儿 2024-03-26 15:29 118阅读 0赞

并发编程面试

    • 1、synchronized用过吗,其原理是什么
    • 2、你刚才提到获取对象的锁,这个锁是什么?如何确定对象的锁?
    • 3、什么是可重入性?为什么说synchronized是可重入锁?
    • 4、Java中的线程池是如何实现的?
    • 5、如何在java线程池中提交线程?

1、synchronized用过吗,其原理是什么

这是一道Java面试中几乎百分之百都会问到的题目,如果没有参与过并发编程的话,对其是说不上来的。synchronized是由JVM实现的一种实现互斥同步的方式

Synchronized是由JVM实现的一种实现互斥同步的一种方式,如果你查看被Synchronized修饰过的程序块编译后的字节码,会发现,被Synchronized修饰过的程序块,在编译前后被编译器生成了monitorenter和monitorexit两个字节码指令。

在虛拟机执行到monitorenter指令时,首先要尝试获取对象的锁:

  • 如果这个对象没有锁定,或者当前线程已经拥有了这个对象的锁,把锁的计数器+1;
  • 当执行 monitorexit指令时将锁计数器-1;
  • 当计数器为O时,

发表评论

表情:
评论列表 (有 0 条评论,118人围观)

还没有评论,来说两句吧...

相关阅读

    相关 大厂JVM面试

    一、头条一面:JVM 从 GC 角度看,堆的分区情况? 二、美团一面:说下JVM的垃圾回收算法? 三、滴滴一面:你知道哪几种垃圾回收器,各自的优缺点?

    相关 并发编程面试

    基础知识 并发编程的优缺点 为什么要使用并发编程(并发编程的优点) 充分利用多核CPU的计算能力:通过并发编程的形式可以将多核CPU的计算能力发挥到极致,性