
并发编程实例
文章平均质量分 93
叶落-花开
这个作者很懒,什么都没留下…
展开
-
synchronized,voliate-详解
一.synchronized底层原理:synchronized关键字,在底层编译后的jvm指令中,会有monitorenter(枷锁)和monitorexit(释放锁)两个指令.monitorenter指令执行的时候会干什么呢?每个对象都有一个关联的monitor,比如一个对象实例就有一个monitor,一个类的Class对象也有一个monitor,如果要对这个对象加锁,那么必须获取这个对象关联的monitor的lock锁.他里面的原理和思路大概是这样的,monitor里面有一个计数器,从0开始的。原创 2020-08-05 09:55:49 · 1383 阅读 · 0 评论 -
ThreadLocal基本知识点分析
一. ThreadLocal是什么?ThreadLocal是一个将在多线程中为每一个线程创建单独的变量副本的类; 当使用ThreadLocal来维护变量时, ThreadLocal会为每个线程创建单独的变量副本, 避免因多线程操作共享变量而导致的数据不一致的情况。二. ThreadLocal使用方法1、将需要被多线程访问的属性使用ThreadLocal变量来定义;import java.sql.Connection;import java.sql.DriverManager;import jav转载 2020-06-04 11:03:21 · 176 阅读 · 0 评论 -
AQS--组件
一. 什么是AQS在AQS内部会保存一个状态变量state,通过CAS修改该变量的值,修改成功的线程表示获取到该锁,没有修改成功,或者发现状态state已经是加锁状态,则通过一个Waiter对象封装线程,添加到等待队列中,并挂起等待被唤醒。AQS维护了一个volatile int state(代表共享资源)和一个FIFO线程等待队列(多线程争用资源被阻塞时会进入此队列)。AQS定义两种资源共享方式:Exclusive(独占,只有一个线程能执行,ReentrantLock)和Share(共享,多个线程可原创 2020-06-01 18:40:04 · 810 阅读 · 0 评论 -
ConcurrentHashMap详解
一.jdk1.8 和jdk1.7数据结构最对比:转载 2020-05-11 15:28:16 · 196 阅读 · 0 评论 -
CAS(compare and set)原理
一.CAS原理讲解图原创 2020-05-11 14:40:32 · 371 阅读 · 0 评论 -
线程安全-有序性
List item 看书在写原创 2020-05-09 16:19:08 · 158 阅读 · 0 评论 -
线程安全-可见性
一.jvm关于synchronzied的两条规定线程解锁前,必须把共享变量的最新刷到主内存线程枷锁时,将清空工作内存中共享变量的值,从而使用共享变量时需要从住内存中重新读取最新的值(枷锁和解锁是同一把锁)二.volatile可见性:通过加入内存屏障和禁止重排序优化来实现可见性的对volatile变量写操作时,会在写操作后加入一条store屏障指令,将本地内存的共享变量刷新到主内存中对volatile变量读操作时,会在读操作前加入一条load屏障指令,从主内存中读取共享变量总结,对vo原创 2020-05-09 16:04:16 · 152 阅读 · 0 评论 -
JAVA内存模型
一.java内存模型-同步的八种操作:lock(锁定):作用于主内存的变量,把一个变量标记为一条线程独占状态unlock(解锁):作用于主内存的变量,把一个处于锁定状态的变量释放出来,释放后的变量才可以被其他线程锁定read(读取):作用于主内存的变量,把一个变量值从主内存传输到线程的工作内存中,以便随后的load动作使用load(载入):作用于工作内存的变量,它把read...原创 2020-04-29 22:19:08 · 121 阅读 · 0 评论 -
线程池原理-参数详解
一.概要:ThreadPoolExecutor线程池7个参数详解:public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ...原创 2018-10-31 15:42:31 · 374 阅读 · 0 评论 -
线程安全性-原子性-Atomic包-1
一.什么是线程安全性:定义:当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些进程将如何交替执行,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出正确的行为,那么就称这个类是线程安全的。二.线程安全性变现在三方面: 1.原子性:提供互斥访问,在同一时刻只能有一个线程对他访问 2.可见性:一个线程对内存的修改可以及时的被其他线程观察到 3.有序性:一个线程观察其...原创 2018-04-25 23:25:49 · 251 阅读 · 0 评论 -
synchronized-原子性
一.synchronized:1.修饰代码块:大括号括起来的代码,作用于调用对象 2.修饰方法:整个方法,作用于调用对象 3.修饰静态方法:真个静态方法,作用于所有对象 4.修饰类:括号括起来的部分,作用于所有对象...原创 2018-05-02 23:22:41 · 1050 阅读 · 0 评论