乐观锁和悲观锁介绍

发布日期:2017年04月24日| 点击: 1,395 次| 暂无评论

乐观锁和悲观锁定义 乐观锁(Optimistic Lock), 顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版...

CAS分析(二)

发布日期:2017年04月23日| 点击: 662 次| 暂无评论

CAS,Compare And Swap,即比较并交换。Doug lea在同步组件中大量使用CAS技术鬼斧神工地实现了Java多线程的并发操作。整个AQS同步组件、Atomic原子类操作等等都是以CAS实现的,甚至Con...

CAS分析(一)

发布日期:2017年04月23日| 点击: 1,028 次| 暂无评论

CAS(Compare And Swap)指的是现代 CPU 广泛支持的一种对内存中的共享数据进行操作的一种特殊指令。这个指令会对内存中的共享数据做原子的读写操作。 简单介绍一下这个指令的操作过程:首先,CPU 会...

懒汉形式的单例模式多线程问题研究

发布日期:2017年04月22日| 点击: 1,302 次| 暂无评论

作为一个单例,我们首先要确保的就是实例的“唯一性”,有很多因素会导致“唯一性”失效,它们包括:多线程、序列化、反射、克隆等,更特殊一点的情况还有:分布式系统、多个类加载器等等。其中,多线程问题最为突出。为了提高应用...

synchronized分析(一)

发布日期:2017年04月22日| 点击: 955 次| 暂无评论

synchronized锁的类型 synchronized的本质是给对象上锁,对象包括实例对象,也包括类对象。常见的加锁方式有下面几种写法: (1)在非static方法上加synchronized,例如:p...

互斥锁,自旋锁和读写锁

发布日期:2017年04月18日| 点击: 1,245 次| 暂无评论

锁是为了解决某种资源(又称为临界资源)互斥使用提出的一种机制。常用的有互斥锁、自旋锁和读写锁。 自旋锁和互斥锁功在使用时差不多,每一时刻只能有一个执行单元占有锁,而占有锁的单元才能获得临界资源的使用权,从而达到了互...

CPU的核心数、线程数的关系和区别

发布日期:2017年04月16日| 点击: 2,292 次| 暂无评论

我们在选购电脑的时候,CPU是一个需要考虑到核心因素,因为它决定了电脑的性能等级。CPU从早期的单核,发展到现在的双核,多核。CPU除了核心数之外,还有线程数之说,下面文本就来解释一下CPU的核心数与线程数的关系和区别。...

内核态(Kernel Mode)与用户态(User Mode)的研究

发布日期:2017年04月10日| 点击: 740 次| 暂无评论

引言 在多线程并发情况下,互斥同步对性能最大的影响是阻塞的实现,挂起线程和恢复线程的操作都需要转入内核态中完成,这些操作给系统的并发性能带来了很大的压力。 内核态和用户态 内核态: CPU可以访...