
java 多线程
文章平均质量分 94
志哥聊技术
一线互联网研发技术倾囊相授,专注原创分享!
展开
-
多线程系列(二十一) -ForkJoin使用详解
从 JDK 1.7 开始,引入了一种新的 Fork/Join 线程池框架,它可以把一个大任务拆成多个小任务并行执行,最后汇总执行结果。原创 2024-03-13 09:30:01 · 2667 阅读 · 0 评论 -
多线程系列(二十) -CompletableFuture使用详解
在上篇文章中,我们介绍了Future相关的用法,使用它可以获取异步任务执行的返回值。我们再次回顾一下Future相关的用法。原创 2024-03-11 09:29:49 · 1506 阅读 · 0 评论 -
多线程系列(十九) -Future使用详解
在前几篇线程系列文章中,我们介绍了线程池的相关技术,任务执行类只需要实Runnable接口,然后交给线程池,就可以轻松的实现异步执行多个任务的目标,提升程序的执行效率,比如如下异步执行任务下载。原创 2024-03-11 09:28:48 · 1520 阅读 · 0 评论 -
多线程系列(十八) -AQS原理浅析
在之前的文章中,我们介绍了 ReentrantLock、ReadWriteLock、CountDownLatch、CyclicBarrier、Semaphore、ThreadPoolExecutor 等并发工具类的使用方式,它们在请求共享资源的时候,都能实现线程同步的效果。原创 2024-03-07 13:52:28 · 1357 阅读 · 0 评论 -
多线程系列(十七) -线程组介绍
在之前的多线程系列文章中,我们陆陆续续的介绍了Thread线程类相关的知识和用法,其实在Thread类上还有一层ThreadGroup类,也就是线程组。原创 2024-03-07 13:51:02 · 826 阅读 · 0 评论 -
多线程系列(十六) -常用并发原子类详解
在 Java 的java.util.concurrent包中,除了提供底层锁、并发同步等工具类以外,还提供了一组原子操作类,大多以Atomic开头,他们位于java.util.concurrent.atomic包下。原创 2024-03-06 09:58:41 · 624 阅读 · 0 评论 -
多线程系列(十五) -常用并发工具类详解
在前几篇文章中,我们讲到了线程、线程池、BlockingQueue 等核心组件,其实 JDK 给开发者还提供了比synchronized更加高级的线程同步组件,比如 CountDownLatch、CyclicBarrier、Semaphore、Exchanger 等并发工具类。原创 2024-03-06 09:57:22 · 997 阅读 · 0 评论 -
多线程系列(十四) -一文带你搞懂线程池技术
虽然 Java 对线程的创建、中断、等待、通知、销毁、同步等功能提供了很多的支持,但是从操作系统角度来说,频繁的创建线程和销毁线程,其实是需要大量的时间和资源的。原创 2024-03-05 09:31:18 · 1029 阅读 · 0 评论 -
多线程系列(十三) -一文带你搞懂阻塞队列
在 Java 的并发包里面还有一个非常重要的接口:BlockingQueue。原创 2024-03-05 09:28:53 · 953 阅读 · 0 评论 -
多线程系列(十二) -生产者和消费者模型
在 Java 多线程编程中,还有一个非常重要的设计模式,它就是:生产者和消费者模型。原创 2024-03-04 09:31:53 · 1349 阅读 · 0 评论 -
多线程系列(十一) -浅析并发读写锁StampedLock
为了进一步的提升程序并发执行效率,Java 8 引入了一个新的读写锁:StampedLock。原创 2024-03-04 09:30:21 · 997 阅读 · 0 评论 -
多线程系列(十) -ReadWriteLock用法详解
在上篇文章中,我们讲到ReentrantLock可以保证了只有一个线程能执行加锁的代码。但是有些时候,这种保护显的有点过头,比如下面这个方法,它仅仅就是只读取数据,不修改数据,它实际上允许多个线程同时调用的。原创 2024-02-26 13:42:39 · 985 阅读 · 0 评论 -
多线程系列(九) -ReentrantLock常用方法详解
在上一篇文章中,我们介绍了ReentrantLock类的一些基本用法,今天我们重点来介绍一下ReentrantLock其它的常用方法,以便对ReentrantLock类的使用有更深入的理解。原创 2024-02-26 13:39:49 · 2097 阅读 · 1 评论 -
多线程系列(八) -ReentrantLock基本用法介绍
在之前的线程系列文章中,我们介绍到了使用synchronized关键字可以实现线程同步安全的效果,以及采用wait()、notify()和notifyAll()方法,可以实现多个线程之间的通信协调,基本可以满足并发编程的需求。原创 2024-02-23 17:06:03 · 1499 阅读 · 0 评论 -
多线程系列(七) -ThreadLocal 用法及内存泄露分析
在 Java web 项目中,想必很多的同学对ThreadLocal这个类并不陌生,它最常用的应用场景就是用来做对象的跨层传递,避免多次传递,打破层次之间的约束。原创 2024-02-23 14:10:45 · 1229 阅读 · 0 评论 -
多线程系列(六) -等待和通知模型详解
在之前的线程系列文章中,我们介绍了synchronized和volatile关键字,使用它能解决线程同步的问题,但是它们无法解决线程之间协调和通信的问题。原创 2024-02-21 10:42:15 · 908 阅读 · 0 评论 -
多线程系列(五) -死锁分析及解决办法介绍
在之前的文章中,我们介绍了synchronized同步锁关键字的作用以及相关的用法,它能够保证同一时刻最多只有一个线程执行修饰的代码段,以实现线程安全执行的效果。但是如果过度的使用synchronized等方式进行加锁,程序可能会出现死锁现象。原创 2024-02-21 10:38:09 · 1132 阅读 · 0 评论 -
多线程系列(四) -volatile关键字使用详解
在上篇文章中,我们介绍到在多线程环境下,如果编程不当,可能会出现程序运行结果混乱的问题。出现这个原因主要是,JMM 中主内存和线程工作内存的数据不一致,以及多个线程执行时无序,共同导致的结果。原创 2024-02-20 12:05:05 · 1138 阅读 · 0 评论 -
多线程系列(三) -synchronized 关键字使用详解
在之前的线程系列文章中,我们介绍了线程创建的几种方式以及常用的方法介绍。我们接着聊聊多线程线程安全的问题,以及解决办法。原创 2024-02-20 11:54:21 · 1049 阅读 · 0 评论 -
多线程系列(二) -Thread类使用详解
在很多场景下,我们经常听到采用多线程编程,能显著的提升程序的执行效率。例如执行大批量数据的插入操作,采用单线程编程进行插入可能需要 30 分钟,采用多线程编程进行插入可能只需要 5 分钟就够了。既然多线程编程技术如此厉害,那什么是多线程呢?原创 2024-02-19 09:56:23 · 958 阅读 · 0 评论 -
多线程系列(一) -线程技术入门知识讲解
在很多场景下,我们经常听到采用多线程编程,能显著的提升程序的执行效率。例如执行大批量数据的插入操作,采用单线程编程进行插入可能需要 30 分钟,采用多线程编程进行插入可能只需要 5 分钟就够了。既然多线程编程技术如此厉害,那什么是多线程呢?原创 2024-02-18 16:43:33 · 1018 阅读 · 0 评论