
JUC
文章平均质量分 85
加油呀,少年们!
only-qi
好好学习,努力向前,你认真专注做事的样子真的好帅!
展开
-
线程池工作中好用的实践方式
submit() 的异常处理千万别忘了!一定要 future.get()。说区别时,不要只说“一个有返回值一个没有”,那太基础。最好结合业务场景说“什么时候选哪个”,让面试官觉得你是。原创 2025-05-23 11:17:10 · 449 阅读 · 0 评论 -
ScheduledExecutorService详解
比如period为5,那5秒后,检测上一个任务是否执行完毕,如果上一个任务执行完毕,则当前任务立即执行,如果上一个任务没有执行完毕,则需要等上一个任务执行完毕后立即执行,如果你的任务执行时间超过5秒,那么任务时间间隔参数将无效,任务会不停地循环执行,,加上任务时间间隔作为下一次任务开始时间,由此可以得出,任务可以严格按照时间间隔执行。的子接口,提供了更强大的调度功能。是 Java 并发工具包 (是以上一个任务开始的时间计时。在指定的延迟后执行一次任务。) 中的一个接口,用于在。原创 2025-01-04 22:47:39 · 566 阅读 · 0 评论 -
线程池项目中实际应用
废话不多说,直接上代码,感觉写的挺规范的,所以记录一下,供大家一起学习,也供自己日后复习。原创 2024-12-05 16:53:39 · 262 阅读 · 0 评论 -
为什么要使用多线程(并发编程)
学习操作系统的时候,都了解到:单核处理器也支持多线程执行代码,CPU通过给每个线程分配CPU时间片来实现这个机制。时间片是CPU分配给各个线程的时间,因为时间片非常短,所以CPU通过不停地切换线程执行,让我们感觉多个线程是同时执行的,时间片一般是几十毫秒(ms)。CPU通过时间片分配算法来循环执行任务,当前任务执行一个时间片后会切换到下一个任务。但是,在切换前会保存上一个任务的状态,以便下次切换回这个任务时,可以再加载这个任务的状态。所以任务从保存到再加载的过程就是一次上下文切换。原创 2024-06-29 12:29:31 · 699 阅读 · 0 评论 -
@Async注解失效的 9 种场景
最近有粉丝问了我一个问题:他在项目某个方法使用@Async注解,但是该方法还是同步执行了,异步不起作用,到底是什么原因呢?@Slf4j@Service@Async这个问题还是比较有意思的,今天这篇文章总结了@Async注解失效的9种场景,希望对你会有所帮助。转载 2024-05-13 10:45:49 · 654 阅读 · 1 评论 -
CompletableFuture使用详解
它通过实现Actor模型来实现异步消息处理、并发管理、容错机制等功能,具有高效、稳定、可扩展、易维护等优点。CompletableFuture:CompletableFuture是Java8中新增的异步编程工具,可以极大地简化异步编程的复杂度、提高程序效率和性能,并且支持函数式编程风格,可以使代码更加简洁易读。Netty:Netty是一种Java异步网络编程框架,可以帮助开发者更加高效地处理TCP、UDP、HTTP等协议的网络编程,支持异步I/O操作、线程池、事件驱动等机制,可以提高程序的并发性和性能。原创 2023-04-24 16:55:01 · 800 阅读 · 1 评论 -
死锁的原因,模拟死锁,死锁排查工具和死锁的解决方案
本文介绍了死锁的概念,以及产生死锁的 4 个条件,排查死锁可以通过本文提供的 4 种工具中的任意一种来检测,从易用性和性能方面来考虑,推荐使用 jconsole 或 jvisualvm,最后我们介绍了死锁问题的两种解决方案:顺序锁和轮询锁。转载 2022-09-06 10:52:49 · 1002 阅读 · 2 评论 -
多线程间的5种通信方式,你能说几种?
JUC必要掌握,学习第一天JUC必要掌握(Synchronized,Lock,可重入锁ReentrantLock,可重入锁,读写锁,自旋锁,线程间通信,集合的线程安全),学习第二天JUC必要掌握(Callable&Future、JUC 三大辅助类、 阻塞队列),学习第三天。原创 2022-08-25 09:45:08 · 427 阅读 · 0 评论 -
JUC必要掌握(Callable&Future、JUC 三大辅助类、 阻塞队列),学习第三天
目录1. Callable&Future 接口1.1 Callable1.2 Future1.3 FutureTask1.4 话不多说直接上demo(CV运行,感受一下)1.4.1 普通小demo,拿去即可运行1.4.2 线程池方式2. JUC 三大辅助类2.1 减少计数 CountDownLatch2.2 循环栅栏 CyclicBarrier2.3 信号灯 Semaphore3. 阻塞队列4. CompletableFuture1..原创 2022-05-31 22:42:21 · 968 阅读 · 1 评论 -
JUC必要掌握(Synchronized,Lock,可重入锁ReentrantLock,可重入锁,读写锁,自旋锁,线程间通信,集合的线程安全),学习第二天
公平锁:效率高,可能线程饿死非公平锁:效率低,雨露均沾可重入锁(递归锁):synchronized(隐式)和lock(显式)都是可重入锁原创 2022-05-30 16:43:52 · 1275 阅读 · 3 评论 -
JUC必要掌握,学习第一天
1.什么是进程和线程进程:指在系统中正在运行的一个应用程序;程序一旦运行就是进程;进程是:资源分配的最小单位。线程:系统分配处理器时间资源的基本单元,或者说进程之内独立执行的一个单元执行流。线程:程序执行的最小单位。2.wait/sleep 的区别(1)sleep 是 Thread 的静态方法,wait 是 Object 的方法,任何对象实例都能调用。(2)sleep 不会释放锁,它也不需要占用锁。wait 会释放锁,但调用它的前提是当前线程占有锁(即代码要在 synchro原创 2022-05-04 22:50:34 · 456 阅读 · 2 评论 -
线程池知多少?
1.线程池和普通线程类相比的优点 重用存在的线程,减少对象创建、消亡的开销,性能佳,降低资源消耗; 可有效控制最大并发线程数,提高系统资源利用率,同时可以避免过多资源竞争,避免阻塞,提高响应速度; 提供定时执行、定期执行、单线程、并发数控制等功能,以达到提高线程的可管理性。 ...原创 2022-01-17 18:03:16 · 1302 阅读 · 0 评论 -
阿里巴巴建议的线程池创建方式,你用上了吗?
publicstaticExecutorServicenewSingleThreadExecutor()publicstaticExecutorServicenewFixedThreadPool(intnThreads)publicstaticExecutorServicenewCachedThreadPool()publicstaticScheduledExecutor...转载 2021-12-31 11:06:18 · 573 阅读 · 2 评论 -
java集合:线程安全的实现方式与分析
目录1.ArrayList、HashSet和HashMap分析线程不安全的原因1.1 ArrayList1.2 HashMap1.3 HashSet2. List线程安全的实现方式3.Set线程安全的实现方式4.Map线程安全的实现方式前言我们常用的ArrayList、HashSet以及HashMap都是线程不安全的。1.ArrayList、HashSet和HashMap分析线程不安全的原因1.1 ArrayListpublic boolean add(E e)原创 2021-12-11 19:48:56 · 952 阅读 · 0 评论