
JAVA并发多线程
文章平均质量分 92
小图包
这个作者很懒,什么都没留下…
展开
-
AQS 原理解析以及源码分析
什么是AQS?AbstractQueuedSynchronizer,可以叫做抽象队列同步器,可以避免处理多个位置上发生的竞争问题。在基于AQS构建的同步器中,只可能在一个时刻发生阻塞,从而降低上下文切换的开销,并提高吞吐量。AQS 的核心也包括了这些方面:同步队列,独占式锁的获取和释放,共享锁的获取和释放以及可中断锁,超时等待锁获取这些特性的实现,这些实际上是AQS提供出来的模板方法。AQS 是一个抽象类,当我们继承 AQS 去实现自己的同步器时,要做的仅仅是根据自己同步器需要满足的性质实现线程获取原创 2021-05-11 23:58:17 · 257 阅读 · 1 评论 -
Master-Worker模式
多线程设计模式(三):Master-Worker模式Master-Worker模式是常用的并行模式之一,它的核心思想是,系统有两个进程协作工作:Master进程,负责接收和分配任务;Worker进程,负责处理子任务。当Worker进程将子任务处理完成后,结果返回给Master进程,由Master进程做归纳汇总,最后得到最终的结果。一、什么是Master-Worker模式:该模式的结转载 2017-11-06 23:43:10 · 291 阅读 · 0 评论 -
ConcurrentLinkedQueue的实现原理和源码分析
原文链接:http://www.jianshu.com/p/26d9745614dd前言我们要实现一个线程安全的队列有两种实现方式一种是使用阻塞算法,另一种是使用非阻塞算法。使用阻塞算法的队列可以用一个锁(入队和出队用同一把锁)或两个锁(入队和出队用不同的锁)等方式来实现,而非阻塞的实现方式则可以使用循环CAS的方式来实现,本节我们就来研究下ConcurrentLinkedQueu转载 2017-11-07 21:46:29 · 209 阅读 · 0 评论 -
深入剖析ThreadLocal实现原理以及内存泄漏问题
一、概述在2017京东校园招聘笔试题中遇到了描述ThreadLocal的实现原理和内存泄漏的问题,之前看过ThreadLocal的实现原理,但是网上有很多文章将的很乱,其中有很多文章将ThreadLocal与线程同步机制混为一谈,特别注意的是ThreadLocal与线程同步无关,并不是为了解决多线程共享变量问题! ThreadLocal官网解释: This class provi转载 2017-11-09 21:41:05 · 365 阅读 · 0 评论 -
深入ThreadLocal之二
概述相信读者在网上也看了很多关于ThreadLocal的资料,很多博客都这样说:ThreadLocal为解决多线程程序的并发问题提供了一种新的思路;ThreadLocal的目的是为了解决多线程访问资源时的共享问题。如果你也这样认为的,那现在给你10秒钟,清空之前对ThreadLocal的错误的认知!看看JDK中的源码是怎么写的:This class provides thr转载 2017-11-10 09:48:41 · 228 阅读 · 0 评论 -
并发中的同步锁(synchronized)
引言 最近一段时间,实验室已经倾巢出动找实习了,博主也凑合了一把,结果有悲有喜,BAT理所应当的跪了,也收到了其他的offer,总的感受是有必要夯实基础啊。 言归正传,最近在看到java多线程的时候,发现线程很多都是用了synchronized(同步锁)的关键字,对它的了解还只停留在“锁”的概念上。博主也在网上搜了一些介绍synchronized 的博客,但是越看越糊涂,而且我的水平还转载 2017-11-10 11:49:44 · 1165 阅读 · 0 评论