Java_14:多线程高阶

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java_14:多线程高阶相关的知识,希望对你有一定的参考价值。

一、多线程

1.为什么使用多线程:
(1)安全
(2)效率

2.多线程使用场景:
(1)需要执行比较耗时的操作
(2)需要异步处理的业务(比如阻塞)
3.使用多线程要考虑的因素:
(1)执行的代码任务量
(2)系统资源
(3)执行任务的数量

二、线程间竞争对象锁的过程

技术图片

三、synchronized关键字

1.synchronized的作用:
通过线程间的同步互斥达到线程安全的三大特性(原子性、可见性、有序性)
2.synchronized执行效率:
(1)如果线程数量越多,性能下降的越快
(2)同步代码执行时间越快。性能相对来说,下降越快
3.synchronized实现原理:
monitor机制:monitorenter、monitorexit,计数器
4.synchronized的锁机制:
(1)乐观锁:
技术图片
(2)悲观锁:
技术图片
(3)CAS Compare and Swap,比较并交换(原始值、修改值、预期值、版本号)---属于乐观锁
技术图片
CAS的应用:
java.util.concurrent.atomic的实现原理就是CAS
5.synchronized的优化方案:

技术图片

以上是关于Java_14:多线程高阶的主要内容,如果未能解决你的问题,请参考以下文章

多线程(八):多线程高阶

多线程(八):多线程高阶

Java(高阶)——线程安全

阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第2节 线程实现方式_14_匿名内部类方式实现线程的创建

多线程问题(算法高阶多线程算法)存在重复元素 II(数组哈希表)计数质数(数组数学)

Python高阶(一) - 单线程、多线程和多进程的效率对比测试