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的优化方案: 来源: 51CTO 作者: 小西几 链接: https://blog.51cto.com/14234228/2479527