![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JUC
文章平均质量分 96
Ftsom
Pro Memoria
展开
-
JUC-BlockingQueue
一、简介BlockingQueue是juc包下提供的队列工具,叫做阻塞队列。类似于生产者和消费者的模式。二、使用BlockingQueue是一个很经典的生产者-消费者类型的队列模式,生产者不断的向队列中生产输入,如果队列满了则会阻塞生产者知道队列不满;另一方面消费者则不断的从队列中获取消费,如果队列是空的,则会阻塞消费者,知道队列不为空。我这以ArrayBlockingQueue为例,...原创 2020-04-29 09:26:41 · 201 阅读 · 0 评论 -
JUC-并发工具(CountDownLatch\CycleBarrier\Semaphore)
一、简介CountDownLatch(闭锁)、Semaphore(信号量)、CycleBarrier(栏栅)二、解析CountDownLatch一般称为闭锁,某一个线程等待其他线程完成后,再继续往下执行的场景下,可以使用此工具。首先创建CountDownLatch的一个实例对象,指定等待锁数量k,一般等于剩余等待的线程数量,然后等待线程执行await()方法阻塞等待,其他线程执行cou...原创 2020-04-24 09:21:49 · 501 阅读 · 0 评论 -
JUC-Lock工具解析
一、简介我们在进行多线程编程的时候,考虑的最多的问题之一就是并发的问题,也就是多线程对于共享变量的操作问题。许多的时候我们会借助于锁这个工具来控制多线程并发对于共享变量的操作,是一种牺牲时间的并发保障机制。在java中关于同步工具有自带的关键字synchronized,也有juc下利用AQS同步框架封装的Lock工具,关于AQS可以在JUC-AQS框架解析文章中进行源码级别的分析,本文章在AQ...原创 2020-04-21 08:41:59 · 229 阅读 · 0 评论 -
JUC-AQS框架解析
一、简介当我们谈到并发的时候,就会想到java中juc包下的一系列的并发工具,例如lock、CountDownlach、CyclicBarrier以及Semphore等,当你使用这些并发工具的时候,就必需深刻理解AQS,因为AQS是juc下并发工具的灵魂,也就是他们的底层框架.AQS全称为AbstractQueuedSynchronizer,也就是抽象队列同步器,定义了一套多线程访问共享资...原创 2020-04-15 14:09:21 · 232 阅读 · 2 评论 -
JUC-volatile关键字作用
一、前言本文意在讲解java中volatile关键字的作用以及原理,因为该关键字可以说是JMM模型封装底层原语而提供出来的API,他的实现涉及到cpu的指令以及线程内存与主存间的交互过程,因此本文会从cpu到缓存内存,再到线程以及JMM,通过简单的介绍线程、缓存、cpu的大致流程后,在此基础之上讲解volatile的作用以及原理,以便于更加深刻的理解volatile关键字的含义。二、计算机...原创 2019-11-24 15:50:25 · 209 阅读 · 1 评论 -
JUC-线程池源码简析
一、线程池介绍Java5开始,在util下提供了一个包,叫做JUC(java.util.concurrent),里面提供了关于多线程、并发的一些工具包。例如锁、多线程等工具都在这个包中。我们知道一个线程的创建、销毁过程是会消耗系统性能的,需要使用cpu,占用内存,当频繁大量的创建销毁线程,这个消耗累积到会影响系统性能,为了解决这一类问题,出现了“池化”的概念,“池化”意为将资源放进一个池子...原创 2019-10-25 08:24:49 · 319 阅读 · 1 评论