![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
天来天往
学习学习,疯狂学习
展开
-
Java并发编程——AQS之共享式同步状态的获取与释放
这里写目录标题共享式获取void acquireShared(int arg)void doAcquireShared(int arg)全图共享式释放boolean releaseShared(int arg)共享式获取void acquireShared(int arg)//同步器调用tryAcquireShared获取同步状态,当返回值大于0 时,表示能够获取同步状态。public final void acquireShared(int arg) { if (tryAcquir原创 2020-06-11 00:25:39 · 303 阅读 · 0 评论 -
Java并发编程——AQS之独占式同步状态的获取与释放
这里写目录标题独占式获取acquirevoid acquire(int arg)独占式释放release二级目录三级目录独占式获取acquirevoid acquire(int arg)/***这里的acquire方法目的就是在获取失败时,能够自旋*这里的if判断就实现了这一功能*如果想要产生自旋,那么就要同时满足if的两个条件*1.tryAcquire(arg)失败,就是说此时尝试获取当前节点失败*2.同时,acquireQueued成功,就是。**/public final voi原创 2020-06-09 17:07:33 · 175 阅读 · 0 评论 -
Java源码——AQS源码分析
这里写目录标题packageimport类内部类codeNode内部类变量方法构造函数AQS变量AQS方法队列工具二级目录三级目录packagepackage java.util.concurrent.locks;importimport java.util.concurrent.TimeUnit;import java.util.ArrayList;import java.util.Collection;import java.util.Date;import sun.misc.Unsa原创 2020-06-08 01:29:14 · 132 阅读 · 0 评论 -
Java并发编程——线程池与Executor
这里写目录标题线程池核心参数corePoolSizemaximumPoolSizekeepAliveTime 与 unitrunnableTaskQueuethreadFactoryRejectedExecutionHandler(饱和策略)线程池的处理流程Executor框架成员ThreadPoolExecutorSingleThreadExecutorFixedThreadPoolCachedThreadPoolScheduledThreadPoolExecutorDelayedWorkQueueSch原创 2020-06-04 23:16:24 · 144 阅读 · 0 评论 -
Java并发编程——工具类
这里写目录标题Semaphore(信号量)CountDownLatch(倒计时器)CyclicBarrier (循环栅栏)Semaphore(信号量)资源访问,服务限流无论是synchronized或者是ReentrantLock,一次都只允许一个线程访问一个资源,Semaphore可以指定多个线程,同时访问一个资源。必须指定Semaphore的准入数,即同时可以申请多少个许可。public Semaphore(int permits)public Semaphore(int permits,原创 2020-06-03 23:11:15 · 109 阅读 · 0 评论 -
Java并发编程——线程间通信:Synchronized与Monitor
这里写目录标题volatile总线风暴synchronized与Monitorsynchronized等待通知机制Thread.join()ThreadLocal 与内存泄漏volatile关键字volatile可以修饰字段,就是告知程序任何对该变量的访问都需要先从共享内存中获取,而对它的改变必须同步刷新回共享内存,它能保证所有线程对变量访问的可见性。但是过多的使用,会降低程序执行的效率。总线风暴由volatile关键字修饰的变量在工作内存和主内存产生大量交互(无效交互),会产生大量无效工作内存变原创 2020-06-03 01:31:42 · 225 阅读 · 0 评论 -
Java并发编程——同步机制(volatile,synchronized,(AQS)Lock)
这里写目录标题volatilevolatile内存语义的实现synchronized作用synchronized是JVM内置锁synchronized用法加锁原理锁升级优化对象数据结构(对象头,32位)不可中断可重入非公平原子性有序性可见性Lock接口附录二级目录三级目录volatile修饰变量volatile是Java虚拟机提供的轻量级的同步机制。volatile关键字有如下两个作用- 保证被volatile修饰的共享变量对所有线程总数可见的- 禁止指令重排序优化。volatile保证了可见性原创 2020-05-23 23:30:42 · 270 阅读 · 0 评论 -
Java并发编程——JMM
这里写目录标题为什么用并发JMM模型二级目录三级目录为什么用并发JMM模型二级目录三级目录原创 2020-05-19 23:09:43 · 179 阅读 · 0 评论 -
Java并发编程—— 底层基础概念
目录《组成原理》——硬件计算机五大核心组件:与JMM相关的硬件结构缓存行加锁缓存一致性问题缓存一致性协议: MESI指令重排与指令流水《操作系统》——线程基础什么是线程线程分类用户级线程(User-Level Thread)内核线线程(Kernel-Level Thread)Java线程与系统内核的关系Java线程的生命状态《组成原理》——硬件计算机五大核心组件:控制器(Control)运算器(Datapath)存储器(Memory)输入(Input System)输出(Output Sys原创 2020-05-18 20:36:53 · 244 阅读 · 0 评论