并发
奔跑的树先生
滴水穿石,始于积累,代码开发,更在于平时的积累
展开
-
01-多线程-基础
线程的生命周期线程共包括一下5种状态新建状态(New):线程对象被创建以后,就进入了新建创建,例如:Thread thread = new Thread()。就绪状态(Runnable):也被称为:可执行的状态,线程对象被创建以后,其他线程调用了该对象的start()方法,从而来启动该线程,例如:thread.start(),处于就绪状态的线程可以被CPU调用运行状态(Running)...原创 2019-06-10 20:11:56 · 104 阅读 · 0 评论 -
01.并发多线程-volatile
可见性多个线程并发读写一个共享变量的时候,有可能某个线程修改了变量的值,但是其他的线程看不到,也就是对其他线程不可见工作原理主要作用是保证可见性以及有序性不能保证原子性volatile 怎么保证可见性和有序性内存可见性CPU的内存访问很慢,所以CPU有几层的高速缓存,加速内存访问速度Java的内存模型对上述又进行了一些列的抽象,JMM(java内存模型)规定所有的变量都...原创 2019-06-10 20:12:45 · 162 阅读 · 0 评论 -
02-CAS和原子类
什么是CAS全称:Compare and Set ,也就是先比较再设置的意思也称为:Compare and swap,先比较并交换流程并发包(j.u.c)下的应用示例以原子包下的AtomicInteger类进行源码分析CAS //创建一个原子类的对象,并进行++ 操作,从0开始 AtomicInteger atomicInteger = new AtomicInteg...原创 2019-08-01 17:28:18 · 118 阅读 · 0 评论 -
03.并发多线程AQS
AQS是什么全称是AbstractQueuedSynchronizer,(抽象队列同步器)它的定位手机为java中几乎所有的锁和同步器提供一个基础框架AQS是基于FIFO的队列(First-In,First-Out,先进先出)实现的,并且内部维护了一个状态变量state,通过原子(CAS)更新这个状态变量即可以实现加锁解锁的操作AQS的实现原理思想如果被请求的共享资源空闲,则将当前...原创 2019-08-01 17:29:36 · 128 阅读 · 0 评论