![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
高并发架构基础
Ghost丶禅悟
这个作者很懒,什么都没留下…
展开
-
高并发基础之单例模式(六)
单例模式在多线中的表现原创 2017-09-04 10:34:54 · 226 阅读 · 0 评论 -
高并发基础之同步容器(七)
在java中常用的容器有ArrayList LikedList HashSet HashMap 这些集合都是线程不安全的. 这里提一下HashTable和Vector 这两个要注意的是 在多线程中如果做了复合操作,那么也并非线程安全的。 这里指的复合操作如 (如果没有则添加) 在这样的复合操作中 这些集合也并非线程安全的 注意collections这个类的synchronizedList s原创 2017-09-04 15:46:09 · 159 阅读 · 0 评论 -
高并发基础之Atomic(三)
Atomic与volatile不同点在于Atomic具有原子性而volatile不具备原子性 Atomic包下类的奥秘在于语言层面不做处理,将其交给CPU和内存,实现硬件层面的阻塞在加上volatile的特性实现原子操作 虽然他效率高线程安全 但是只适合一些粒度比较小,型如计数器这样的需求用起来才有效,否则也不会有锁的存在了。原创 2017-08-28 17:20:09 · 196 阅读 · 0 评论 -
高并发基础之volatile(二)
volatile设置变量在线程之间的可见性 当一个变量被volatile修饰后 在某个线程中其值被改变 那么其他使用到该变量的线程都将会收到通知 注意一个细节 system.out.println会刷新内存空间 也就是说哪怕没用volatile 用了system.out.print 也能主动刷新内存空间原创 2017-08-27 01:25:40 · 255 阅读 · 1 评论 -
高并发基础之synchronized(一)
synchronized原子锁 一个方法的默认锁对象是当前对象 一个静态方法的默认锁对象是当前class字节码对象原创 2017-08-27 01:16:00 · 264 阅读 · 1 评论 -
高并发基础之线程通信wait/notify/notifyAll(四)
在多线程中通信我们可以使用wait/notify 这里顺带提一下sleep和wait的区别 sleep:线程阻塞不释放锁 wait:线程阻塞释放锁 wait和notify是属于Object的方法所以所有类都可以调用到原创 2017-08-28 17:25:48 · 274 阅读 · 0 评论 -
高并发基础之Mq实现(五)
利用前面学到的知识 写一个我们自己的mq队列 不多说直接亮代码 package com.ghost.concurrent; import java.util.LinkedList; import java.util.concurrent.atomic.AtomicInteger; /** * 消息队列 * @author Ghost */ public abstract class M原创 2017-08-30 11:22:51 · 632 阅读 · 0 评论