文章 2025-01-09 来自:开发者社区

Java 多线程 面试题

并发编程三要素? 三要素主要包括可见性、原子性和有序性可见性:是指一个线程对共享变量的修改能够被其他线程立即看到的特性。原子性:是指一个或多个操作要么全部执行成功,要么全部执行失败,不会被其他因素打断。有序性:是指程序执行的顺序必须符合预期,不能出现乱序的情况。 同步方法和同步块哪个是更好的选择? ...

文章 2024-12-25 来自:开发者社区

【JavaEE】——单例模式引起的多线程安全问题:“饿汉/懒汉”模式,及解决思路和方法(面试高频)

阿华代码,不是逆风,就是我疯,你们的点赞收藏是我前进最大的动力!!希望本文内容能够帮助到你! 目录 一:单例模式(singleton) 1:概念 二:“饿汉模式” 1:前引 2:代码编译 3:代码分析 4:解释为什么叫“饿汉模式” 三:“懒汉”模式 1:前引 2:代码编译 3:代码分析 4:“...

【JavaEE】——单例模式引起的多线程安全问题:“饿汉/懒汉”模式,及解决思路和方法(面试高频)
文章 2024-08-21 来自:开发者社区

Java多线程面试题总结(中)

::: tip这个里面的内容对应 Java并发编程基础知识 书籍中的内容。需要的画私聊我哈!!!::: 一、简介 Java内存模型(Java Memory Model,简称JMM)是一种抽象的概念,它定义了Java程序中各个变量(包括实例域、静态域和数组元素)的读写访问方式,以及这些变量如何在多线程环境中被正确地同步和可见。JMM的目标是确保Java程序在各种不同的硬件和操作系统平台上都能保...

Java多线程面试题总结(中)
文章 2024-08-21 来自:开发者社区

Java多线程面试题总结(上)

一、线程和进程的区别? 进程和线程是操作系统中的两个重要概念,它们之间存在着明显的区别。以下是对进程和线程区别的详细阐述: 1、定义与基本单位 进程(Process):进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。它是程序...

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

【多线程面试题二十五】、说说你对AQS的理解

面试官:说说你对AQS的理解 参考答案: 抽象队列同步器AbstractQueuedSynchronizer (以下都简称AQS),是用来构建锁或者其他同步组件的骨架类,减少了各功能组件实现的代码量,也解决了在实现同步器时涉及的大量细节问题,例如等待线程采用FIFO队列操作的顺序。在不同的同步器中还可以定义一些灵活的标准来判断某个线程是应该通过还是等待。 AQS采用模板方法模式,在内部维护...

【多线程面试题二十五】、说说你对AQS的理解
文章 2024-08-21 来自:开发者社区

【多线程面试题二十四】、 说说你对JUC的了解

面试官:说说你对JUC的了解** 参考答案: JUC是java.util.concurrent的缩写,该包参考自EDU.oswego.cs.dl.util.concurrent,是JSR 166标准规范的一个实现。JSR 166是一个关于Java并发编程的规范提案,在JDK中该规范由java.util.concurrent包实...

文章 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编译之后,会在同步块的前...

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

Java面试那些事儿

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

+关注
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等