多线程
文章平均质量分 63
懵懵懂懂程序员
编程上不断摸爬打滚的程序员! 相信美好的一切即将发生,一切问题都能解决。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
高并发场景下解决并发数据不一致
高并发场景下解决并发数据不一致原创 2024-10-22 15:48:22 · 1457 阅读 · 1 评论 -
Spring的表达式解析器+AOP+Redis实现注解分布式锁
Redis实现注解分布式锁原创 2022-08-02 09:59:00 · 749 阅读 · 0 评论 -
异步编程CompletableFuture(2021.12.28)
异步(并发)编程CompletableFuture (2021-12-28)1.0 ExecutorService的submit()说明先进行介绍为什么需要学习CompletableFuture。以往我们需要获取到线程异步执行结果都是调用的submit()方法, 其方法有3个。Future<?> submit(Runnable task); 、 <T> Future<T> submit(Runnable task, T result);<T> Fu原创 2021-12-28 18:38:52 · 454 阅读 · 0 评论 -
ReentrantReadWriteLock读写锁(读多写少场景)
ReentrantReadWriteLock读写锁适合读多写少的场景。读锁ReentrantReadWriteLock.ReadLock可以被多个线程同时持有, 所以并发能力很高。写锁ReentrantReadWriteLock.WriteLock是独占锁, 在一个线程持有写锁时候, 其他线程都不能在抢占, 包含抢占读锁都会阻塞。读写锁的互斥原则如下:读操作与读操作, 线程之间是可以共存的, 是相容的。读操作与写操作、 线程之间不能共存的, 是互斥的、 当有写锁操作时候, 其原创 2021-12-25 14:55:17 · 1238 阅读 · 0 评论 -
CyclicBarrier 让所有线程等待命令在继续执行
CyclicBarrier 让所有线程等待命令在继续执行字面意思回环栅栏,通过它可以实现让一组线程等待至某个状态之后再全部同时执行。叫做回环是因为当所有等待线程都被释放以后,CyclicBarrier可以被重用。我们暂且把这个状态就叫做barrier,当调用await()方法之后,线程就处于barrier了。CyclicBarrier类位于java.util.concurrent包下,CyclicBarrier提供2个构造器:public CyclicBarrier(int parties, Ru原创 2021-06-08 10:39:38 · 514 阅读 · 0 评论 -
CountDownLatch 等待所有线程执行完毕
CountDownLatch 等待所有线程执行完毕CountDownLatch类位于java.util.concurrent包下,利用它可以实现类似计数器的功能。比如有一个任务A,它要等待其他4个任务B执行完毕之后才能执行,此时就可以利用CountDownLatch来实现这种功能了。CountDownLatch类仅有且必需, 需要有参数的构造方法,初始化倒数次数public CountDownLatch(int count) { if (count < 0) thro原创 2021-06-04 20:46:30 · 776 阅读 · 0 评论 -
异步编程CompletionService(学习笔记2020-08-24)
异步(并发)编程CompletionService (学习笔记2020-08-24)前言:CompletionService 的主要应用场景是批量线程任务!学习之前,思考为什么要使用CompletionService, 不使用的结果是什么? 使用后的结果会是怎么样?1.0 使用ExecutorService批量执行任务获取结果ExecutorService 批量提交任务有2种方式:一是自己将执行结果返回的Future<T>封装进集合。二是ExecutorService提供了i原创 2020-08-25 14:56:33 · 320 阅读 · 0 评论 -
异步编程CompletableFuture(学习笔记2020-08-14)
异步(并发)编程CompletableFuture (学习笔记2020-08-14)1.0 ExecutorService的submit()说明先进行介绍为什么需要学习CompletableFuture。以往我们需要获取到线程异步执行结果都是调用的submit()方法, 其方法有3个。Future<?> submit(Runnable task); 、 <T> Future<T> submit(Runnable task, T result);<T>原创 2020-08-25 09:59:21 · 244 阅读 · 0 评论
分享