Java_14:多线程高阶
2020-03-17 19:55
288 查看
一、多线程
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.java5的CountDownLatch同步工具
- java基础14:多线程
- javaseday14(多线程 lock wait sleep)
- 【Java】Java学习笔记14-多线程
- 复习 Core Java Chap14 多线程 笔记
- Java基础笔记:Day_14 多线程与synchronized
- Java Hour 14 多线程基础
- (14)多线程与并发库之java5同步集合类的应用【包含jdk1.5新特性 ConcurrentHashMap】
- Java基础14--多线程
- Java多线程 -- JUC包源码分析14 -- ScheduledThreadPoolExecutor与DelayQueue源码分析
- java学习笔记14--多线程编程基础1
- Java并发编程基础---(14)实现多线程的3种方式
- Java---14---多线程---synchronized 同步函数
- 14、Java并发性和多线程-Java ThreadLocal
- 黑马程序员_日记14_Java多线程(四)
- java多线程(14)--线程池作用及Executors方法讲解
- (14)多线程与并发库之java5同步集合类的应用【包含jdk1.5新特性 ConcurrentHashMap】
- java多线程14 :wait()和notify()/notifyAll()
- (14)Java多线程之线程状态
- Java基础班学习笔记(14)多线程