多线程与并发原理
「已注销」
业精于勤荒于嬉,行成于思毁于随
展开
-
Java多线程与并发原理 --- synchronized底层实现原理
synchronized底层实现原理? 实现 synchronized 的基础 1、java对象头 2、Monitor 对象在内存中的布局 1、对象头 2、实例数据 3、对齐填充 一般而言,synchronized 使用的锁对象是 存储在java对象头里面的,其主要结构是由 Mark Word 和 Class Metadata Address Monitor : 每个java...原创 2019-05-08 19:42:46 · 233 阅读 · 0 评论 -
Java多线程与并发原理 --- synchronized 与 ReentrantLock 的区别
synchronized 与 ReentrantLock 的区别? ReentrantLock (再入锁) 1、位于 java.util.concurrent.locks 包 2、和CountDownLatch 、FuntureTask、Semaphore 一样基于AQS 实现。 3、能够实现比Synchronized 更细粒度的控制,如控制fairness。 4、调用lock()之后,...原创 2019-05-08 20:13:23 · 188 阅读 · 0 评论 -
Java多线程与并发原理 --- jmm的内存可见性
Java 内存模型 JMM 如上是线程不安全的 如果想线程安全: 1、两个方法中加上修饰符 synchronized 2、变量加上 volatile 修饰符 ...原创 2019-05-08 20:39:28 · 146 阅读 · 0 评论 -
Java多线程与并发原理 --- CAS
CAS(Co'mpare and Swap) 一种高效实现线程安全性的方法 1、支持原子更新操作、适用于计数器、序列发生器等场景。 2、属于乐观锁机制,号称 lock - free 3、CAS操作失败时由开发者决定是继续尝试,还是执行别的操作。 悲观锁: CAS 多数情况下对开发者来说是透明的。 在使用CAS 前要考虑ABA 问题 是否影响程序并发的正确性,如果需要...原创 2019-05-08 20:52:33 · 237 阅读 · 0 评论 -
Java多线程与并发原理 --- Java线程池
Java线程池 第五个是 只有在JDK 8 中才引入的方法。 Fork/Join 框架在 JDK 7中才有的。原创 2019-05-08 21:21:48 · 235 阅读 · 0 评论 -
Java多线程与并发原理 --- synchronized
synchronized 线程安全问题的主要诱因? 1、存在共享数据(也称 临界资源) 2、存在多条线程共同操作这些共享资源 解决问题的根本方法: 同一时刻有且只有一条线程处理这些共享数据,其他线程只有等到改线程处理完,才能对共享数据进行操作。 互斥锁的特性: 互斥性:即是在同一时间只允许一个线程持有某个对象锁,通过这种特性来实现多线程的协调机制。这样在同一时间只有一个线程对需要同...原创 2019-05-07 23:03:25 · 142 阅读 · 0 评论