Java 多线程并行计算框架:ForkJoin,实战讲解!从 JDK 1.7 开始,引入了一种新的 Fork/Join 线程池框架,它可以把一个大任务拆成多个小任务并行执行,最后汇总执行结果。Fork/Join 采用的是分而治之的基本思想,分而治之就是将一个复杂的任务,按照规定的阈值划分成多个简单的小任务,然后将这些小任务的执行结果再进行汇总返回,得到最终的执行结果。分而治之的思想在大数据领域应用非常广泛。下面我们一起来看看 Fork/Join 的具体用法。panzhi2025年1月4日大约 10 分钟java多线程
异步编程利器:CompletableFuture 用法及实现原理详解从 Java 8 开始引入了 CompletableFuture,它针对 Future 做了很多的改进,在实现 Future 接口相关功能之外,还支持传入回调对象,当异步任务完成或者发生异常时,自动调用回调对象方法。下面我们一起来看看 CompletableFuture 相关的用法!panzhi2025年1月3日大约 15 分钟java多线程
并发编程利器:Future 接口使用全攻略!Future 接口,表示一个可能还没有完成异步任务的结果,它提供了检查任务是否已完成、以及等待任务完成并获取结果等方法。如果看过 ExecutorService.submit() 方法,会发现它的返回参数都是 Future 类型,Future 类型的实例可以用来获取异步任务执行的结果。下面我们先来看一个简单的示例,以便于更好的理解!panzhi2025年1月2日大约 7 分钟java多线程
深度剖析 AQS 设计原理,内容相当硬核!AQS 是一个提供了原子式管理同步状态、阻塞和唤醒线程功能的框架,是除了 Java 自带的synchronized关键字之外的锁实现机制。可以这么说,AQS是JUC包下线程同步类的基石,也是很多面试官喜欢提问的话题,掌握AQS原理对我们深入理解线程同步技术有着非常重要的意义。panzhi2021年6月18日大约 22 分钟java多线程
【并发编程】常用原子操作技术详解相比通过synchronized和lock等方式实现的线程安全同步操作,原子类的实现机制则完全不同。它采用的是通过无锁(lock-free)的方式来实现线程安全(thread-safe)访问,底层原理主要基于CAS操作来实现。panzhi2021年6月17日大约 14 分钟java多线程
【并发编程】常用线程同步技术详解在前几篇文章中,我们讲到了线程池实现原理、阻塞队列技术等核心组件,其实 JDK 给开发者还提供了比 synchronized 更加高级的线程同步组件,比如 CountDownLatch、CyclicBarrier、Semaphore、Exchanger 等并发工具类。下面我们一起来了解一下这些常用的并发工具类!panzhi2021年6月16日大约 11 分钟java多线程
一文带你彻底弄懂线程池设计机制虽然 Java 对线程的创建、中断、等待、通知、销毁、同步等功能提供了很多的支持,但是从操作系统角度来说,频繁的创建线程和销毁线程,其实是需要大量的时间和资源的。合理利用线程池技术,对程序运行效率可以起到事半功倍的效果。panzhi2021年6月15日大约 22 分钟java多线程
浅析线程与线程组之间的关系在之前的多线程系列文章中,我们陆陆续续的介绍了Thread线程类相关的知识和用法,其实在Thread类上还有一层ThreadGroup类,也就是线程组。今天我们就一起来简单的聊聊线程组相关的知识和用法。panzhi2021年6月14日大约 7 分钟java多线程
阻塞队列 BlockingQueue 用法详解在 Java 的并发包里面还有一个非常重要的接口:BlockingQueue。BlockingQueue是一个基于阻塞机制实现的线程安全的队列。通过它也可以实现生产者和消费者模型,并且效率更高、安全可靠,相比之前介绍的生产者和消费者模型,它可以同时实现生产者和消费者并行运行。panzhi2021年6月13日大约 17 分钟java多线程
一文吃透生产者和消费者模型在并发编程中,有一个非常重要的设计模式,它就是:生产者和消费者模型。这种模型可以充分发挥 cpu 的多线程特性,通过一些平衡手段能有效的提升系统整体处理数据的速度,减轻系统负载,提高程序的效率和稳定性,同时实现模块之间的解耦。panzhi2021年6月12日大约 9 分钟java多线程