![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发
文章平均质量分 67
Aaron_涛
囧囧有神
展开
-
缓存一致性协议
操作系统的CPU和内存并不是直接交互操作的。我们的CPU有一级缓存,CPU直接操作一级缓存,由一级缓存和内存进行交互。所以同一个程序,CPU进行切换的时候,切换前和切换后的数据可能会有不一致的情况。那么这个就是一个很大的问题了。如何保证各个CPU缓存中的数据是一致的。就是CPU的缓存一致性问题。一种处理一致性问题的办法是使用Bus Locking(总线锁)。当一个CPU对其缓存中的数据进行操作的时...原创 2018-03-03 18:55:11 · 995 阅读 · 0 评论 -
ReentrantLock实现原理
以下是本篇文章的大纲1 synchronized和lock1.1 synchronized的局限性1.2 Lock简介2 AQS3 lock()与unlock()实现原理3.1 基础知识3.2 内部结构3.3 NonfairSync3.3.1 lock() 3.3.2 unlock()3.3.3 小结3.4 FairSync4 超时机制5 总结1 synchronized和lock1.1 sync...转载 2018-06-12 21:43:09 · 566 阅读 · 0 评论 -
理解ConditionObject源码
Condition接口Condition主要是为了配合lock使用,类似于wait和notify配合synchronize使用一样,起到线程之间的通信作用。public interface Condition { /** * 暂停此线程直至一下四种情况发生 * 1.此Condition被signal() * 2.此Condition被signalA...原创 2018-06-13 13:28:30 · 2078 阅读 · 4 评论 -
JUC工具之CountDownLatch源码解读
CountdownLatch 倒计时计时器。 犹如倒计时的计时器,调用CountdownLatch对象的countDown()方法,就将计时器减一当计时器到达0时,则所有线程或单个线程开始执行。 可以实现一个人(多人)等待其他所有人都来通知他,可以实现一个通知多个人的效果。类似裁判一声令下运动员同时开始奔跑。import java.util.concurrent.CountDow...原创 2018-06-13 16:23:58 · 674 阅读 · 0 评论 -
为什么volatile关键字保证不了线程安全
在当前高并发的时代,不懂一点高并发多线程都不好意思出去,即使没地方使用,网上大多数相关文档博客也都讲解了这些部分。 我并不想具体介绍什么是volatile,我写这篇博客目的是说明白为什么volatile保证不了线程安全。想要线程安全必须保证原子性,可见性,有序性。而volatile只能保证可见性和有序性 在说明这个问题之前,首先还是要说明下cpu和内存,cpu和内存直接是有高速...原创 2018-07-10 20:06:17 · 17029 阅读 · 15 评论 -
Java多线程——线程池之初探
public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, ...原创 2018-07-25 21:49:16 · 476 阅读 · 0 评论 -
ConcurrentHashMap分析
ConcurrentHashMap分析JDK7size方法get方法put方法JDK8get方法put方法initTable方法size方法ConcurrentHashMap分析JDK7static final class Segment<K,V> extends ReentrantLock implements Se...原创 2018-08-08 20:10:57 · 423 阅读 · 0 评论 -
协程-初探
目录1.协程定义2.进程,线程,协程3.协程优点3.1.内存小3.2.效率高3.3.减少同步锁3.4.同步代码思维写异步代码4.协程的缺点4.1.无法利用多核资源4.2.协程中不能有阻塞操作4.3.CPU密集型不是长处5.Java实现协程(Kilim)的原理6.例子1.协程定义Coroutines are co...原创 2019-08-17 20:33:06 · 1724 阅读 · 0 评论 -
JDK8中HashMap依然会死循环!
JDK8中HashMap依然会死循环! 是否你听说过JDK8之后HashMap以及解决的扩容死循环的问题,虽然HashMap依然说线程不安全,但是不会造成服务器load飙升的问题。 然而事实并非如此。少年可曾了解一种红黑树成环的场景,=v= 今日在查看监控时候发现,某一台机器load飙升感觉问题不对劲,ssh大法登陆机器,top,top -Hp,jstack,jmap四连击保存...原创 2019-09-26 21:53:34 · 8418 阅读 · 7 评论