Java基础-0x07:学习阻塞队列 Posted on 2020-05-29 JUC阻塞队列 队列与阻塞队列 阻塞队列,顾名思义 首先它是一个队列,而一个阻塞队列在数据结构中起到的作用大致如图所示好: 当阻塞队列是空时,从队列中获取元素的操作会被阻塞。(消费者) 当阻塞队列是满时,向队列中添加元素的操作会被阻塞。(生产者) Read more »
Java基础-0x06:CountDownLatch/CyclicBarrier/Semaphore的使用 Posted on 2020-05-29 JUCCountDownLatch/CyclicBarrier/Semaphore 如何使用 CountDownLatch(闭锁) CyclicBarrier(栅栏) Semaphore(信号量) Read more »
Java基础-0x04:集合类线程不安全 Posted on 2020-05-26 JUC集合类线程不安全 在多线程并发环境下,对集合类执行像add( ),put( )这样的操作 会触发java.util.ConcurrentModificationException这样的异常 上一篇已经举例了ArrayList的解决方法,这次看看其他集合类的底层到底是怎么解决的。 Read more »
Java基础-0x03:ArrayList线程不安全的问题 Posted on 2020-05-25 JUC我们知道ArrayList是线程不安全的 众所周知,ArrayList时线程不安全的,那么有没有什么方法,既保证了 AllrayList的高并发,又保证了线程安全呢? 我编写了一个案例,并给出了解决方案。 Read more »
Java基础-0x02:探究CAS引出的ABA问题 Posted on 2020-05-25 JUC由CAS缺陷到ABA问题 谈谈什么是ABA问题:狸猫换太子 Thread0x00, Thread0x01。 0x01比0x00 用时少,同时操作主内存。由于0x01比0x00快,所以主内存中数据已经被改了。0x01再次读取内存中的值,再次修改主内存中的值。几次循环之后,0x00执行完毕,写回主内存时,主内存的值正好是期望值,然后0x00修改成功。 表面上是风平浪静的,但是在0x00执行过程中,0x01已经修改过多次。 这就叫ABA问题 Read more »
Java基础-0x01:学习CAS Posted on 2020-05-24 JUCCAS你知道吗 CAS(Compare and swap),即比较并交换,也是实现我们平时所说的自旋锁或乐观锁的核心操作 它的实现很简单,就是用一个预期的值和内存值进行比较,如果两个值相等,就用预期的值替换内存值,并返回 true。否则,返回 false。 Read more »
Spring Cloud:完整脑图 Posted on 2020-05-23 课程内容来自 尚硅谷 周阳笔记整理 By Allwayz资源下载: 脑图 PDF格式 PNG格式 Xmind格式 源码 自学过程源码 周阳老师发布源码 课程视频 哔哩哔哩地址 Read more »
Java基础-0x00:学习Volatile Posted on 2020-05-23 JUC1. 谈谈对volatile的理解volatile是Java虚拟机提供的轻量级的同步机制。三大特性: 保证可见性 一个线程修改了主内存中的值,其他线程回马上收到通知,进行同步 不保证原子性 禁止指令重排 Read more »