
java高并发学习
辜智强 -buaa
这个作者很懒,什么都没留下…
展开
-
java秒杀项目:mysql乐观锁+redis限流+redis缓存+kafka队列
最近学习了秒杀系统设计,已经将代码上传到github,不断优化,吞吐量达到5000,大家喜欢的话还希望多多star安装和使用说明方法首先要安装Java和maven,我的安装环境为:yunfeiyang@buaa:~$ mvn -vApache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47...原创 2019-11-19 21:24:27 · 3287 阅读 · 1 评论 -
java并发的底层实现
减少上下文切换的方法有无锁并发编程,CAS算法,减少线程和多使用协程无锁并发编程。多线程处理数据时,可以用一些办法来避免使用锁,将数据的ID按照Hash算法取模分段,不同的线程处理不同的数据CAS算法。Java的的Atmoic包使用CAS算法来更新数据,而不需要加锁使用最少线程,大量的无用的线程会造成大量的线程处于等待状态协程:在单线程中使用多任务的调度,并在单线程中维持多个任务的切换...原创 2019-09-25 21:37:46 · 78 阅读 · 0 评论 -
并发机制的底层实现原理||
Volatile实现原理Lock前缀的指令会引起处理器缓存到内存一个处理器的缓存回写到内存会导致其他处理器的缓存无效,故其他地方的缓存会重新读内存,从而实现了不同处理器上的缓存是同步的java 的每一个对象都可以作为锁,对于普通同步对象,锁是当前实例对象对于静态同步方法,锁是当前类的class对象对于同步方法块,锁是synchonized括号里配置的对象jvm基于进入和退出moni...原创 2019-09-26 21:52:10 · 160 阅读 · 0 评论 -
JAVA内存模型
并发编程模型中的两个关键问题线程通信:通信是指线程之间以何种机制来交换信息,线程之间的通信机制有两种,分别是内存共享和消息传递线程同步:同步是指程序中用于控制不同线程间操作相对顺序的机制java的并发采用的是内存共享模型,java线程之间的通信总是隐式进行的。java内存模型的抽象结构在java中,所有的实例域,静态域和数组元素都存在在堆内存中,堆内存在线程之间共享,局部变量,方法的...原创 2019-09-27 21:39:58 · 99 阅读 · 0 评论 -
Java并发编程基础
什么是线程操作系统运行一个程序时,会为其创建一个进程,现代操作系统的做小调度单元是线程,也叫轻量级进程。在一个进程里可以创建多个线程,这些线程拥有各自的计数器、堆栈和局部变量等属性,并且能访问共享的内存为什么要使用多线程更多的处理器核心更快的响应时间更好的编程模型线程优先级程序的正确性不依赖于 线程的优先级高低线程的状态java线程在运行的声明周期中可能处于下面六种状态,在...原创 2019-10-01 12:23:40 · 123 阅读 · 0 评论 -
并发工具类
ConcurrentHashMap的原理与实现ConcurrentHashMap是线程安全且高效的HashMap ,在并发编程中使用hashMap可能导致程序死循环,而使用线程安全的HashTable效率又非常低下,基于以上两个原因,便有了ConcurrentHashMap的登场机会HashMap在并发执行put操作时会引起死循环,是因为多线程会导致hashMap 链表形成环形结构,一旦形成...原创 2019-10-01 16:45:23 · 117 阅读 · 0 评论