| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> java多线程面试大全 -> 正文阅读 |
|
[Java知识库]java多线程面试大全 |
学习目标:面试进大厂 1.volatile是什么?:1.是java虚拟机提供的轻量级的同步机制,符合JMM规范的2个特性,线程不安全,因为不保证原子性
那什么是可见性?
所以你们想想多个线程去操作主内存数据到自己工作内存,那修改数据成功后另一个线程如何知道数据被修改呢?所以jmm有一个可见性规范。
单例模式在多线程可能存在哪些问题?:单例模式分懒汉和饿汉式,只有懒汉式才线程不安全,因为他懒,每次创建对象前,都去判断一下是否为null,为null我才创建对象,不然就懒得创建。 但当线程同时进入判断时,就产生获取多个getInstance() 错误,可以用双端检索机制来解决,但可能会出现指令重排,因为在多线程环境下,底层为了优化有指令重排。
就是先运行了return 所以还需要在instance属性上加volatile
cas介绍一下:compare and swap 比较与交换 为什么他能包证原子性? 底层: atomicInteger.getAndIncrement()方法里面调用了unsafe.getAndAddInt(),这个方法里面有一个do循环,利用compareAndSwapInt判断值是否和期望值相同,相同这退出,不同则一直循环! csa的缺点?
如何解决ABA? ArrayList安全吗?如何解决?ArrayList默认容量10 自动扩容1.5倍
那我用Collections.synchronizedList()解决
那我只能new一个juc下的CopyOnWriteArrayList()了 HashSet安全吗?如何解决?底层hashMap HashMap安全吗?如何解决?多线程下会报错 java.util.concurrentModificationException 公平和非公平锁
可重入锁(递归锁)
简单说就是进入第一个方法锁后,第一个方法锁里还有另一个锁,该线程可以直接进入,可以避免死锁。 自旋锁每个线程在进入锁时并不阻塞,而是在锁外循环,不进入等待区 独占锁和共享锁
synchronized和Reentranlock区别
UML 图表可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图: 这将产生一个流程图。:
链接
长方形
圆
圆角长方形
菱形
FLowchart流程图我们依旧会支持flowchart的流程图:
导出与导入导出如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。 导入如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入, |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 10:07:07- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |