uanghaou

导航

2021年7月19日 #

gradle初体验

摘要: 1、下载 下载网站 https://services.gradle.org/distributions/ 我们公司用的是4.8.1的版本 下载完成解压之后是这样的 2、配置环境变量 1、环境变量 > 新建 > 变量名GRADLE_HOME、变量值(自己的解压路径) 2、Path > 新建 > %GR 阅读全文

posted @ 2021-07-19 00:16 uanghaou 阅读(50) 评论(0) 推荐(0) 编辑

2021年7月6日 #

你写的单例真的安全吗?

摘要: 先来一个经典的双重校验的单例 public class Singleton { private static volatile Singleton instances; private Singleton(){ } public static Singleton getInstance(){ if 阅读全文

posted @ 2021-07-06 18:43 uanghaou 阅读(34) 评论(0) 推荐(0) 编辑

2021年5月16日 #

CountDownLatch&&CyclicBarrier

摘要: CountDownLatch CountDownLatch是什么 CountDownLatch是JDK提供的一个同步工具,它可以让一个或多个线程等待,一直等到其他线程中执行完成一组操作。 常用方法 CountDownLatch(int):设置线程数量,即设置计数器的值 countDown():计数器 阅读全文

posted @ 2021-05-16 13:14 uanghaou 阅读(38) 评论(0) 推荐(0) 编辑

2021年4月26日 #

初步认识AQS

摘要: 什么是AQS? AQS是AbstractQueuedSynchronizer类的简称,位于java.util.concurrent.locks下。直译为抽象队列同步器,一般简称为同步器。 AQS维护了一个volatile int类型的state和FIFO的虚拟双向队列,当多线程竞争资源的时候未获得资 阅读全文

posted @ 2021-04-26 21:28 uanghaou 阅读(54) 评论(0) 推荐(0) 编辑

2021年4月14日 #

Atomic底层原理

摘要: JDK提供了一些原子操作的类,在java.util.concurrent.atomic下面。如AtomicBoolean,AtomicInteger,AtomicLong都是用原子的方式来更新指定类型的值。 Unsafe类包含了大量多的对C代码的操作,包括了很多直接内存分配和原子操作的调用,都存在安 阅读全文

posted @ 2021-04-14 21:29 uanghaou 阅读(421) 评论(0) 推荐(0) 编辑

2021年4月10日 #

线程池

摘要: 什么是线程池? 线程池就是创建若干个可执行线程放入一个池(容器)中,有任务需要执行时,就从线程池中获取一个线程用来执行,使用完毕放回线程池中。 JVM在HotSpot的线程模型下,Java线程会一对一映射为内核线程,也就说Java中每创建/回收一个线程都会去内核创建/回收,涉及到内核操作的都是很消耗 阅读全文

posted @ 2021-04-10 17:52 uanghaou 阅读(39) 评论(0) 推荐(0) 编辑

2021年4月3日 #

由浅入深TheradLocal

摘要: 线程并发:在多线程并发的场景下 传递数据:我们可以通过ThreadLocal在同一线程,不同组件中传递公共变量 线程隔离:每个线程的变量都是独立的,不会相互影响 常用方法 方法声明 描述 ThreadLocal() 创建ThreadLocal对象 public void set(T value) 设 阅读全文

posted @ 2021-04-03 21:06 uanghaou 阅读(77) 评论(0) 推荐(0) 编辑

2021年3月14日 #

volatile关键字

摘要: 可以保证可见性,一点程度上保证了有序性,不能保证原子性。 总结: 它会强制将对缓存的修改操作立即写入主存 如果是写操作,它会导致其他CPU中对应的缓存行无效 它确保指令重排序时不会把其后面的指令排到内存屏障之前的位置,也不会把前面的指令排到内存屏障的后面;即在执行到内存屏障这句指令时,在它前面的操作 阅读全文

posted @ 2021-03-14 16:09 uanghaou 阅读(42) 评论(0) 推荐(0) 编辑

2020年9月18日 #

深入理解泛型

摘要: 为什么要使用泛型 泛型程序设计意味着编写的代码可以被很多不同类型的对象所重用。 在JDK1.5之前,ArrayList类只维护一个Object引用的数组: public class ArrayList { private Object[] elementDate; . . . public Obje 阅读全文

posted @ 2020-09-18 10:06 uanghaou 阅读(284) 评论(0) 推荐(0) 编辑

2020年9月7日 #

希尔排序

摘要: 希尔排序基本思想 希尔排序(Shell Sorting)是1959年由D.L.Shell提出来的,是对直接插入排序的一种改进。 希尔排序是先将整个待排序记录序列分割成若干个字序列,每个子序列由相隔某个“增量”的记录组成的,对每个子序列分别进行直接插入排序,待整个序列中的记录基本有序(增量足够小)时, 阅读全文

posted @ 2020-09-07 16:50 uanghaou 阅读(243) 评论(0) 推荐(0) 编辑