![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发锁
街角下的蚂蚁
路漫漫其修远兮,吾将上下而求索!
展开
-
Java基础篇之ThreadPoolExecutor
导语 使用线程池的好处是能够减少在创建和销毁线程上所花费的时间以及系统资源的开销,提升系统整体性能。那么线程池是怎么实现这一目标的呢? 线程池的创建 public ThreadPoolExecutor( int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, ThreadFactory threa.原创 2020-08-02 17:05:49 · 228 阅读 · 0 评论 -
Java锁机制之CAS(二)
导语 上一篇提到了在多核CPU环境下怎么实现CAS的原子性操作。本节将列举CAS在Java中的具体应用。 CAS实现锁的原理 CAS的实现逻辑是将内存位置处的数值与预期数值想比较,若相等,则将内存位置处的值替换为新值。 若不相等,则不做任何操作。 基于这个理念,试想,在并发场景中,如果我们在做CAS操作的时候不成功,那么可以一直循环执行,直到最终成功返回为止。 这样没有加锁执行,线程不会阻塞影响性能,只会耗费更多的CPU资源。 AtomicLong为列 AtomicLong.java // 获取Un.原创 2020-08-15 22:23:15 · 105 阅读 · 0 评论 -
Java锁机制之CAS(一)
导语 CAS 全称是 compare and swap,是一种用于在多线程环境下实现同步功能的机制。CAS 操作包含三个操作数:内存位置、预期数值和新值。CAS的实现逻辑是将内存位置处的数值与预期数值想比较,若相等,则将内存位置处的值替换为新值。若不相等,则不做任何操作。 简介 在 Java 中,Java 并没有直接实现 CAS,CAS 相关的实现是通过 C++ 内联汇编的形式实现的。Java 代码需通过 JNI 才能调用。接下来将会再介绍一点其他的背景知识。有这些背景知识,才能更好的理解后续的内容。原创 2020-08-15 22:22:10 · 249 阅读 · 0 评论