juc
编程吴彦祖
pluto
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JAVA异步编程-JDK-CompletableFuture实践与原理
1.文章目录 ComPletableFuture概述 CompletableFuture实践 CompletableFuture主要源码导读 2.CompletableFuture概述 CompleatableFuture是对Future的增强,我们知道Future的局限性,CompleatableFuture可以通过编程方式显式设置计算结果和状态,并且可以作为一个计算阶段,当他完成时还能触发另一个函数/行为; 当多个线程调用CompletableFuture的complete,cancel方式只原创 2020-06-02 21:16:23 · 731 阅读 · 0 评论 -
JAVA并发编程-AQS原理&RenntrantLock源码导读
1.文章目录 AQS概述,类结构,源码导读; RenntractLock源码,实现细节导读; 2.AQS概述&类结构 AbstractQueuedSynchronizer 抽象同步队列简称 AQS ,它是实现同步器的基础组件, 并发包中锁的底层就是使用 AQS 实现的; AQS 是一个FIFO的双向队列,其内部通过节点 head tail 首和队尾元素,队列元素的类型为Node 其中 Node 中的 thread 变量用来存放进入 AQS 队列里面的线程: Node 节点内部的...原创 2020-06-02 11:23:54 · 730 阅读 · 0 评论 -
JAVA异步编程-JDK中FutureTask实践与原理
1.文章目录 Future接口概述 FutureTask概述 FutureTask显式线程,线程池实现; FutureTask类结构,源码导读; FutureTask局限性; 2.JDK 中Future public interface Future<V> { // 取消任务 boolean cancel(boolean mayInterruptIfRunning); // 任务是否取消 boolean isCancelled(); /原创 2020-06-01 21:45:06 · 623 阅读 · 0 评论 -
JAVA-异步编程-线程和线程池实现异步编程,线程池源码导读
1.文章内容 如何使用线程,线程池实现异步编程; 线程池的原理 2.使用线程实现异步编程 任务类 public class Task { // taskA public static void doSomethingA() { try { // 模拟耗时 Thread.sleep(200); System.out.println("taskA done"); } cat..原创 2020-06-01 17:14:40 · 501 阅读 · 0 评论 -
JAVA并发包-AtomicInteger
1.简介 JUC 包提供 了一系列的原子性操作类,这些类都是使用非阻塞算法 CAS 现的 ,相 比使用锁 现原 性操作这在性能上有很大提高。由于原子性操作类的原理都大致相同。 CAS原理: 在Java发展初期,java语言是不能够利用硬件提供的这些便利来提升系统的性能的。而随着java不断的发展,Java本地方法(JNI)的出现,使得java程序越过JVM直接调用本地方法提供了一种便捷的方式,因而java在并发的手段上也多了起来。而在Doug Lea提供的cucurenct包中,CAS理论是它实现整个原创 2020-05-30 09:06:37 · 338 阅读 · 0 评论
分享