1.CountDownLatch CountDownLatch 允许一个或多个线程等待其他线程完成操作。假设现有一个需求:我们需要解析一个 Excel 里多个 sheet 的数据,此时可以考虑使用多线程,每个线程解析一个 sheet 的数据,等到所有的 sheet 都解析完之后,程序需要提示解析完成 ...
分类:
编程语言 时间:
2021-06-08 22:37:25
阅读次数:
0
Java BlockingQueue接口java.util.concurrent.BlockingQueue表示一个可以存取元素,并且线程安全的队列。换句话说,当多线程同时从 JavaBlockingQueue中插入元素、获取元素的时候,不会导致任何并发问题(元素被插入多次、处理多次等问题)。 从j ...
分类:
编程语言 时间:
2021-06-02 18:20:11
阅读次数:
0
1. 介绍 本文我们继续探究使用AQS的子类ReentrantReadWriteLock(读写锁)。老规矩,先贴一下类图 ReentrantReadWriteLock这个类包含读锁和写锁,这两种锁都存在是否公平的概念,这个后面会细讲。 此类跟ReentrantLock类似,有以下几种性质: 可选的公 ...
分类:
编程语言 时间:
2021-06-02 16:39:51
阅读次数:
0
🐉 大致介绍 本章讲解一下CAS,本质就是机器指令:cmpxchg+lock(根据处理器核数进行判断) 原子操作; 而在谈到并发操作里面,我们不得不谈到AQS,JDK的源码里面好多并发的类都是通过Sync(同步器)的内部类继承AQS而实现出五花八门的功能; 🐉 简单认识AQS 🐉 何为AQS? ...
分类:
编程语言 时间:
2021-05-24 14:01:29
阅读次数:
0
学习计算机技术最好的方式就是看各种经典书籍,这里是不建议把博客之类当成主要学习途径的,博客之类的知识是没有书本那么系统和详细。 有些同学不知道买什么书籍,所以这次,将我自己觉得不错的一些书籍,分享给大家,有需要的可以赶紧囤购一波(当当最近在搞满减活动)。 Java不同阶段学习书籍 步入IT行业 《J ...
分类:
其他好文 时间:
2021-05-24 03:08:26
阅读次数:
0
面试系列——java并发 一、使用线程 有三种使用线程的方法: 实现Runnable接口 实现Callable接口 继承Thread类 实现 Runnable 和 Callable 接口的类只能当做一个可以在线程中运行的任务,不是真正意义上的线程,因此最后还需要通过 Thread 来调用。可以理解为 ...
分类:
编程语言 时间:
2021-04-22 16:32:03
阅读次数:
0
2.3 Java 并发 sleep() 和 wait() 区别? sleep()是线程类Thread的方法;作用是导致此线程暂停执行指定时间,把执行机会给其他线程,但是监控状态依然保持,到时候会自动恢复;调用sleep()不会释放对象锁。 wait()是Object类的方法;对此对象调用wait方法 ...
分类:
编程语言 时间:
2021-04-21 12:43:34
阅读次数:
0
一、为何选择线程池,不用时创建线程呢? 池化技术:提前准备一些资源,在需要时可以重复使用这些预先准备的资源。常见的池化技术的使用有:线程池、内存池、数据库连接池、HttpClient 连接池。 线程池作为池化技术的一种实践,本质上也是同样的思想,提前备好资源以备不时之需。因此,线程池相比较任务出现再 ...
分类:
编程语言 时间:
2021-03-29 12:47:30
阅读次数:
0
##简介 Java的java.util.concurrent包中提供了并发相关的接口和类,本文将重点介绍CompletableFuture并发操作类 JDK1.8新增CompletableFuture该类 Class CompletableFuture<T> java.lang.Object jav ...
分类:
编程语言 时间:
2021-03-29 11:37:02
阅读次数:
0
深入理解Java并发框架AQS系列(一):线程 深入理解Java并发框架AQS系列(二):AQS框架简介及锁概念 一、概述 1.1、前言 重剑无锋,大巧不工 读j.u.c包下的源码,永远无法绕开的经典并发框架AQS,其设计之精妙堪比一件艺术品,令众多学者毫不吝惜溢美之词。近期准备出一系列关于AQS的 ...
分类:
编程语言 时间:
2021-03-15 11:36:01
阅读次数:
0