多线程
tyeerth
现在很菜 以后会更菜
展开
-
java并发容器介绍
1、概览 ConcurrentHashMap:线程安全的HashMap CopyOnWriteArrayList:线程安全的List BlockingQueue:接口,表示阻塞队列,非常适合用于作为数据共享的通道。 ConcurrentLinkedQueue :高效的非阻塞并发队列,使用链表实现。可以看作是一个线程安全的LinkedList。 ConcurrentSkipListMap:是一个Map,使用跳表的数据结果进行快速查找。 2、ConcurrentHashMap 先介绍一下hashMap原创 2020-09-18 22:03:36 · 519 阅读 · 0 评论 -
并发流程控制
文章目录1、什么是控制并发流程1.1为什么要控制?1.2、线程并发控制工具类概览2、CountDownLatch倒计时门闩(多个线程可并行)2.1介绍2.2主要方法2.3 用法3、Semaphore信号量(保证同一时间内线程访问数量小于某个值)。3.1解释3.2使用流程3.3主要方法介绍。3.4 代码演示(释放和获取的数量必须要一致)4、Condition接口(又称条件对象)4.1作用4.2代码演示4.3注意点5、CyclicBarrier循环栅栏。 1、什么是控制并发流程 1.1为什么要控制? 线程原创 2020-09-18 21:59:12 · 292 阅读 · 0 评论 -
原子类的分析与使用
原子类 1、原子类作用与介绍。 1.1特点 不可分离 一个操作中式不可中断的,即使是多线程的情况下也可以保证。 1.2作用 当某些变量需要保证线程安全的时候使用。 原子类的作用和锁类似,是为了保证并发情况下线程安全。不过原子类相比于锁,有一定的优势: 粒度更细:原子变量可以把竞争范围缩小到变量级别,这时我们可以获得的最细粒度的情况了,通常锁的粒度都要大于原子变量的粒度。 效率更高:通常,使用原子类的效率会比使用锁的效率更高,除了高度竞争的情况。 2、6类原子类 [外链图片转存失败,源原创 2020-09-16 08:36:59 · 509 阅读 · 0 评论 -
常见锁的介绍
锁 文章目录锁1、Lock锁1.1简介、作用1.2、为什么需要Lock?1.3Lock锁的常用方法1.4可见性保证2、锁的分类2.1 乐观锁和悲观锁2.1.1 为什么会诞生非互斥同步锁(乐观锁)?2.1.2 什么是乐观锁和悲观锁2.1.3典型的悲观锁和乐观锁的实现2.1.4 开销对比2.2 可重入锁和非可重入锁2.2.1 什么是可重入?2.2.2 可重入锁的源码分析 1、Lock锁 1.1简介、作用 是一种工具,用于控制对共享资源的访问。 Lock和synchronized,这两个是最常见的锁,它们原创 2020-09-15 16:16:12 · 445 阅读 · 0 评论 -
Java线程池的工作原理
文章目录1、线程池组成部分2、Executor3、线程池如何实现任务复用4、ThreadLocal工具类详解4.1两个重要的使用场景4.2主要方法介绍4.3使用ThreadLocal带来的好处 1、线程池组成部分 建议先学习线程池的使用方法(在本专栏的另一篇博客中) 线程池管理器 工作线程 任务队列 任务接口(Task) 2、Executor 3、线程池如何实现任务复用 相同线程执行不同的任务。 在线程池中的线程中不停的从队列中取出任务。 源码分析 4、Thread原创 2020-09-14 21:39:24 · 312 阅读 · 0 评论 -
Java线程池的使用
文章目录1、重要性2、好处3、线程池的构造3.1、构造函数的参数3.2参数解释4、创建线程池4.1自动创建4.1.1 newFixedThreadPool.4.1.2 newSingleThreadExecutor4.1.3 newCachedThreadPool4.1.4 newScheduledThreadPool5、阻塞队列分析6、停止线程池的正确方法。6.1 shutdown6.2isShutdown开始结束就会返回true,否则为false6.3isTerminated6.4awaitTermi原创 2020-09-14 21:35:32 · 105 阅读 · 0 评论