摘要:
一、概念介绍(一)volatile关键字 Java 因为指令重排序,优化我们的代码,让程序运行更快,也随之带来了多线程下,指令执行顺序的不可控。 1.volatile关键字的作用: 内存可见性,修饰的变量发生改变之后对所有线程立即可见禁止指令重排序volatile的底层是通过内存屏障实现的,第一个作 阅读全文
posted @ 2021-06-18 22:48
hanease
阅读(364)
评论(0)
推荐(1)
摘要:
关于线程和线程池的学习,我们可以从以下几个方面入手: 第一,什么是线程,线程和进程的区别是什么 第二,线程中的基本概念,线程的生命周期 第三,单线程和多线程 第四,线程池的原理解析 第五,常见的几种线程池的特点以及各自的应用场景 一、 线程,程序执行流的最小执行单位,是行程中的实际运作单位,经常容易 阅读全文
posted @ 2021-06-18 22:32
hanease
阅读(465)
评论(0)
推荐(0)
摘要:
学习BlockingQueue之LinkedBlockingQueue实现原理 一:概念 LinkedBlockingQueue是一个用链表实现的有界阻塞队列。此队列的默认和最大长度为 Integer.MAX_VALUE。此队列按照先进先出的原则对元素进行排序。 与ArrayBlockingQueu 阅读全文
posted @ 2021-06-18 22:22
hanease
阅读(178)
评论(0)
推荐(0)
摘要:
生产者-消费者ArrayBlockingQueue是一个实现了BlockingQueue接口的类,其可以很方便的实现生产者-消费者模式。用法如下: class Producer implements Runnable { private final BlockingQueue queue; Prod 阅读全文
posted @ 2021-06-18 22:19
hanease
阅读(53)
评论(0)
推荐(0)
摘要:
在Java的并发包中,存在着许多高效的并发工具类,它优于synchronized关键字,在JDK中提供了一个ConcurrentLinkedQueue工具类实现了高效的并发读写工具类,该工具类具有很高效的性能,因此,本片文章笔者将通过解读ConcurrentLinkedQueue源码的方式探究该数据 阅读全文
posted @ 2021-06-18 22:11
hanease
阅读(126)
评论(0)
推荐(0)
摘要:
并发阻塞队列和非阻塞队列详解 在并发队列上JDK提供了两套实现,一个是以ConcurrentLinkedQueue为代表的高性能队列非阻塞,一个是以BlockingQueue接口为代表的阻塞队列,无论哪种都继承自Queue。 队列遵循先进先出,后进后出的原则。 阻塞式队列与非阻塞队列的区别: 阻塞式 阅读全文
posted @ 2021-06-18 21:55
hanease
阅读(455)
评论(0)
推荐(0)