Fork me on GitHub

随笔分类 -  java 多线程

摘要:从 JDK 1.7 开始,引入了一种新的 Fork/Join 线程池框架,它可以把一个大任务拆成多个小任务并行执行,最后汇总执行结果。 阅读全文
posted @ 2024-03-18 10:59 志哥聊技术 阅读(797) 评论(0) 推荐(2) 编辑
摘要:在上篇文章中,我们介绍了Future相关的用法,使用它可以获取异步任务执行的返回值。我们再次回顾一下Future相关的用法。 阅读全文
posted @ 2024-03-15 09:31 志哥聊技术 阅读(2611) 评论(0) 推荐(6) 编辑
摘要:在前几篇线程系列文章中,我们介绍了线程池的相关技术,任务执行类只需要实Runnable接口,然后交给线程池,就可以轻松的实现异步执行多个任务的目标,提升程序的执行效率,比如如下异步执行任务下载。 阅读全文
posted @ 2024-03-14 10:52 志哥聊技术 阅读(397) 评论(0) 推荐(1) 编辑
摘要:在之前的文章中,我们介绍了 ReentrantLock、ReadWriteLock、CountDownLatch、CyclicBarrier、Semaphore、ThreadPoolExecutor 等并发工具类的使用方式,它们在请求共享资源的时候,都能实现线程同步的效果。 阅读全文
posted @ 2024-03-13 09:32 志哥聊技术 阅读(352) 评论(0) 推荐(1) 编辑
摘要:在之前的多线程系列文章中,我们陆陆续续的介绍了Thread线程类相关的知识和用法,其实在Thread类上还有一层ThreadGroup类,也就是线程组。 阅读全文
posted @ 2024-03-12 14:32 志哥聊技术 阅读(365) 评论(0) 推荐(2) 编辑
摘要:在 Java 的java.util.concurrent包中,除了提供底层锁、并发同步等工具类以外,还提供了一组原子操作类,大多以Atomic开头,他们位于java.util.concurrent.atomic包下。 阅读全文
posted @ 2024-03-11 09:31 志哥聊技术 阅读(350) 评论(0) 推荐(1) 编辑
摘要:在前几篇文章中,我们讲到了线程、线程池、BlockingQueue 等核心组件,其实 JDK 给开发者还提供了比synchronized更加高级的线程同步组件,比如 CountDownLatch、CyclicBarrier、Semaphore、Exchanger 等并发工具类。 阅读全文
posted @ 2024-03-07 13:48 志哥聊技术 阅读(807) 评论(0) 推荐(2) 编辑
摘要:虽然 Java 对线程的创建、中断、等待、通知、销毁、同步等功能提供了很多的支持,但是从操作系统角度来说,频繁的创建线程和销毁线程,其实是需要大量的时间和资源的。 阅读全文
posted @ 2024-03-06 09:53 志哥聊技术 阅读(728) 评论(0) 推荐(3) 编辑
摘要:在 Java 的并发包里面还有一个非常重要的接口:BlockingQueue。 阅读全文
posted @ 2024-03-05 09:34 志哥聊技术 阅读(660) 评论(0) 推荐(3) 编辑
摘要:在 Java 多线程编程中,还有一个非常重要的设计模式,它就是:生产者和消费者模型。 阅读全文
posted @ 2024-03-04 16:06 志哥聊技术 阅读(753) 评论(0) 推荐(4) 编辑
摘要:为了进一步的提升程序并发执行效率,Java 8 引入了一个新的读写锁:StampedLock。 阅读全文
posted @ 2024-03-04 09:34 志哥聊技术 阅读(181) 评论(0) 推荐(0) 编辑
摘要:在上篇文章中,我们讲到ReentrantLock可以保证了只有一个线程能执行加锁的代码。但是有些时候,这种保护显的有点过头,比如下面这个方法,它仅仅就是只读取数据,不修改数据,它实际上允许多个线程同时调用的。 阅读全文
posted @ 2024-02-27 09:53 志哥聊技术 阅读(402) 评论(2) 推荐(3) 编辑
摘要:在上一篇文章中,我们介绍了ReentrantLock类的一些基本用法,今天我们重点来介绍一下ReentrantLock其它的常用方法,以便对ReentrantLock类的使用有更深入的理解。 阅读全文
posted @ 2024-02-26 11:23 志哥聊技术 阅读(443) 评论(0) 推荐(4) 编辑
摘要:在之前的线程系列文章中,我们介绍到了使用synchronized关键字可以实现线程同步安全的效果,以及采用wait()、notify()和notifyAll()方法,可以实现多个线程之间的通信协调,基本可以满足并发编程的需求。 阅读全文
posted @ 2024-02-23 16:52 志哥聊技术 阅读(391) 评论(0) 推荐(1) 编辑
摘要:在 Java web 项目中,想必很多的同学对ThreadLocal这个类并不陌生,它最常用的应用场景就是用来做对象的跨层传递,避免多次传递,打破层次之间的约束。 阅读全文
posted @ 2024-02-23 13:35 志哥聊技术 阅读(467) 评论(0) 推荐(1) 编辑
摘要:在之前的线程系列文章中,我们介绍了synchronized和volatile关键字,使用它能解决线程同步的问题,但是它们无法解决线程之间协调和通信的问题。 阅读全文
posted @ 2024-02-22 18:07 志哥聊技术 阅读(128) 评论(0) 推荐(0) 编辑
摘要:在之前的文章中,我们介绍了synchronized同步锁关键字的作用以及相关的用法,它能够保证同一时刻最多只有一个线程执行修饰的代码段,以实现线程安全执行的效果。但是如果过度的使用synchronized等方式进行加锁,程序可能会出现死锁现象。 阅读全文
posted @ 2024-02-21 11:12 志哥聊技术 阅读(403) 评论(0) 推荐(1) 编辑
摘要:在上篇文章中,我们介绍到在多线程环境下,如果编程不当,可能会出现程序运行结果混乱的问题。出现这个原因主要是,JMM 中主内存和线程工作内存的数据不一致,以及多个线程执行时无序,共同导致的结果。 阅读全文
posted @ 2024-02-21 10:32 志哥聊技术 阅读(356) 评论(0) 推荐(0) 编辑
摘要:在之前的线程系列文章中,我们介绍了线程创建的几种方式以及常用的方法介绍。我们接着聊聊多线程线程安全的问题,以及解决办法。 阅读全文
posted @ 2024-02-20 11:51 志哥聊技术 阅读(738) 评论(0) 推荐(3) 编辑
摘要:在之前的文章中,我们简单的介绍了线程诞生的意义和基本概念,采用多线程的编程方式,能充分利用 CPU 资源,显著的提升程序的执行效率。其中java.lang.Thread是 Java 实现多线程编程最核心的类,学习Thread类中的方法,是学习多线程的第一步。 阅读全文
posted @ 2024-02-19 09:53 志哥聊技术 阅读(789) 评论(0) 推荐(4) 编辑

点击右上角即可分享
微信分享提示