文章 2024-08-21 来自:开发者社区

【多线程面试题二十三】、 说说你对读写锁的了解volatile关键字有什么用?

面试官:【多线程面试题二十二】、 说说你对读写锁的了解** 参考答案: 当一个变量被定义成volatile之后,它将具备两项特性: 1、保证可见性 当写一个volatile变量时,JMM会把该线程本地内存中的变量强制刷新到主内存中去,这个写会操作会导致其他线程中的volatile变量缓存无效。 2、禁止指令重排 ...

文章 2024-08-21 来自:开发者社区

【多线程面试题二十二】、 说说你对读写锁的了解

面试官:说说你对读写锁的了解** 参考答案: 与传统锁不同的是读写锁的规则是可以共享读,但只能一个写,总结起来为:读读不互斥、读写互斥、写写互斥,而一般的独占锁是:读读互斥、读写互斥、写写互斥,而场景中往往读远远大于写,读写锁就是为了这种优化而创建出来的一种机制。 注意是...

文章 2024-08-21 来自:开发者社区

【多线程面试题二十一】、 分段锁是怎么实现的?

面试官: 分段锁是怎么实现的?** 参考答案: 在并发程序中,串行操作是会降低可伸缩性,并且上下文切换也会减低性能。在锁上发生竞争时将通水导致这两种问题,使用独占锁时保护受限资源的时候,基本上是采用串行方式—-每次只能有一个线程能访问它。所以对于可伸缩性来说最大的威胁就是独占锁。 我们一般有三种方式降低锁的竞争程度: 1、减少锁的持有时间; 2、降低锁的请求频率; 3、使用带...

【多线程面试题二十一】、 分段锁是怎么实现的?
文章 2024-08-21 来自:开发者社区

【多线程面试题二十】、 如何实现互斥锁(mutex)?

面试官:如何实现互斥锁(mutex)?** 参考答案: 在Java里面,最基本的互斥同步手段就是synchronized关键字,这是一种块结构(Block Structured)的同步语法。synchronized关键字经过Javac编译之后,会在同步块的前...

文章 2024-08-21 来自:开发者社区

【多线程面试题十九】、 公平锁与非公平锁是怎么实现的?

面试官: 公平锁与非公平锁是怎么实现的?** 参考答案: 在Java中实现锁的方式有两种,一种是使用Java自带的关键字synchronized对相应的类或者方法以及代码块进行加锁,另一种是ReentrantLock,前者只能是非公平锁,而后者是默认非公平但可实现公平的一把锁。 ReentrantLock是基于其内部类FairSync(公平锁)和NonFairSync(非公平锁)实现的,并...

【多线程面试题十九】、 公平锁与非公平锁是怎么实现的?
文章 2024-05-09 来自:开发者社区

【Java多线程】面试常考——锁策略、synchronized的锁升级优化过程以及CAS(Compare and swap)

1、锁的策略 加锁过程中,处理冲突的过程中,涉及到的一些不同的处理方式,就叫锁的策略。 1.1、乐观锁和悲观锁 乐观锁 在加锁之前,预估当前出现锁冲突的概率不大,因此在进行加锁的时候就不会做太多的工作。 由于加锁过程中做的事情比较少,加锁的速度可能就更快,但是更容易引入一些其他的问题(消耗更多cpu资源)。 ...

【Java多线程】面试常考——锁策略、synchronized的锁升级优化过程以及CAS(Compare and swap)
文章 2024-04-12 来自:开发者社区

多线程编程常见面试题讲解(锁策略,CAS策略,synchronized原理,JUC组件,集合类)(下)

多线程编程常见面试题讲解(锁策略,CAS策略,synchronized原理,JUC组件,集合类)(上) https://developer.aliyun.com/article/1480727?spm=a2c6h.13148508.setting.14.5f4e4f0eLGd5Sm "跑起来就有意义" 作者:Mylvzi 文章主要内容:多线程编程常见...

多线程编程常见面试题讲解(锁策略,CAS策略,synchronized原理,JUC组件,集合类)(下)
文章 2024-04-12 来自:开发者社区

多线程编程常见面试题讲解(锁策略,CAS策略,synchronized原理,JUC组件,集合类)(上)

"跑起来就有意义" 作者:Mylvzi 文章主要内容:多线程编程常见面试题讲解 hello各位朋友们,最近笔者刚刚结束了学校的期末考试,现在回来继续更新啦!!! 今天要学习...

多线程编程常见面试题讲解(锁策略,CAS策略,synchronized原理,JUC组件,集合类)(上)
文章 2022-02-17 来自:开发者社区

史上最强多线程面试44题和答案:线程锁+线程池+线程同步等

1、并发编程三要素? 1)原子性 原子性指的是一个或者多个操作,要么全部执行并且在执行的过程中不被其他操作打断,要么就全部都不执行。 2)可见性 可见性指多个线程操作一个共享变量时,其中一个线程对变量进行修改后,其他线程可以立即看到修改的结果。 实现可见性的方法: synchronized或者Lock:保证同一个时刻只有一个线程获取锁执行代码,锁释放之前把最新的值刷新到主内存,实现可见性。 3)....

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

Java面试那些事儿

手把手带您学习Java,开启编程之路。

+关注