![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
文章平均质量分 82
UnIQUE Eason
努力就有收获
展开
-
Java实现乐观锁和悲观锁
在 Java 并发编程中,乐观锁和悲观锁都是常用的并发控制机制。乐观锁通常是通过 CAS(Compare and Swap)算法实现的,CAS 算法在 JDK 中提供了相应的原子类,如 AtomicInteger、AtomicLong、AtomicReference 等。悲观锁通常是通过 synchronized 关键字或者 Lock 接口及其实现类来实现的。原创 2023-03-16 16:24:04 · 1744 阅读 · 0 评论 -
Springboot之@Async异步指定自定义线程池使用
开发中会碰到一些耗时较长或者不需要立即得到执行结果的逻辑,比如消息推送、商品同步等都可以使用异步方法,这时我们可以用到`@Async`。但是直接使用 @Async 会有风险,当我们没有指定线程池时,他会默认使用其Spring自带的 SimpleAsyncTaskExecutor 线程池,会不断的创建线程,当并发大的时候会严重影响性能。所以可以将异步指定线程池使用。原创 2023-03-06 19:55:40 · 4171 阅读 · 0 评论 -
并发场景使用SimpleDateFormat异常问题和解决
SimpleDateFormat类主要是负责日期的格式化与转换操作,因为它不是线程安全的,所以使用SimpleDateFormat时,务必确保同一个SimpleDateFormat对象不要与其他线程共享,否则并发情况下会出现问题原创 2023-01-16 15:10:29 · 834 阅读 · 0 评论 -
Java多线程之读写锁ReentrantReadWriteLock类使用
在JDK中提供了一种读写锁ReentrantReadWriteLock类,相比ReentrantLock类,使用前者可以加快运行效率。ReentrantLock类是具有完全互斥排他的效果,即同一时间只有一个线程在执行ReentrantLock.lock()方法后面的任务,这样做虽然保证了实例变量的线程安全性,但效率却是非常低下的。所以在某些不需要操作实例变量的方法中,完全可以使用读写锁ReentrantReadWriteLock来提升该方法的代码运行速度。原创 2023-01-12 11:26:02 · 553 阅读 · 0 评论