E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
聊聊高并发
聊聊高并发
(十二)分析java.util.concurrent.atomic.AtomicStampedReference源码来看如何解决CAS的ABA问题
在
聊聊高并发
(十一)实现几种自旋锁(五)中使用了java.util.concurrent.atomic.AtomicStampedReference原子变量指向工作队列的队尾,为何使用AtomicStampedReference
iter_zc
·
2014-10-30 12:58
Java
高并发
聊聊高并发
聊聊高并发
(十二)分析java.util.concurrent.atomic.AtomicStampedReference源码来看如何解决CAS的ABA问题
在
聊聊高并发
(十一)实现几种自旋锁(五)中使用了java.util.concurrent.atomic.AtomicStampedReference原子变量指向工作队列的队尾,为何使用AtomicStampedReference
ITer_ZC
·
2014-10-30 12:00
thread
多线程
并发
乐观锁
聊聊高并发
(十一)实现几种自旋锁(五)
在
聊聊高并发
(九)实现几种自旋锁(四)中实现的限时队列锁是一个基于链表的限时无界队列锁,它的tryLock方法支持限时操作和中断操作,无饥饿,保证了先来先服务的公平性,在多个共享状态上自旋,是低争用的。
ITer_ZC
·
2014-10-30 11:00
thread
多线程
并发
聊聊高并发
(十)利用自旋原理来无锁实现“只创建一次”的场景
相信看过之前几篇自旋锁实现的同学对设计一个自旋锁会有一定的感觉,有几个实现的要点很实用:1.使用AtomicBoolean原子变量的getAndSet(true)方法来实现并发情况下,找到第一个成功执行方法的线程。这个技巧经常使用,在并发编程中经常会遇到这种需求2.经常会使用volatileboolean类型的变量在多个线程之间同步状态,需要注意的是,对volatile变量的修改只具有可见性,不具
iter_zc
·
2014-10-28 17:44
并发
多线程
dubbo
Java
高并发
聊聊高并发
聊聊高并发
(十)利用自旋原理来无锁实现“只创建一次”的场景
相信看过之前几篇自旋锁实现的同学对设计一个自旋锁会有一定的感觉,有几个实现的要点很实用:1.使用AtomicBoolean原子变量的getAndSet(true)方法来实现并发情况下,找到第一个成功执行方法的线程。这个技巧经常使用,在并发编程中经常会遇到这种需求2.经常会使用volatileboolean类型的变量在多个线程之间同步状态,需要注意的是,对volatile变量的修改只具有可见性,不具
ITer_ZC
·
2014-10-28 17:00
多线程
并发
DUBBO
聊聊高并发
(九)实现几种自旋锁(四)
这篇看一下时限队列锁的一种实现方式。java并发包中的Lock定义包含了时限锁的接口:publicinterfaceLock{ voidlock(); voidlockInterruptibly()throwsInterruptedException; booleantryLock(); booleantryLock(longtime,TimeUnitunit)throwsInter
ITer_ZC
·
2014-10-27 11:00
多线程
并发
推荐一下《
聊聊高并发
》的专栏
新开了一个专栏,
聊聊高并发
,这个专栏会涉及到并发编程的原理,技术,算法,设计,底层实现,经验积累等方方面面,有空会经常更新。推荐一下,多多交流
ITer_ZC
·
2014-10-24 14:00
并发
聊聊高并发
(八)实现几种自旋锁(三)
在
聊聊高并发
(七)实现几种自旋锁(二)这篇中介绍了两种队列锁,一种是有界队列锁,一种是无界队列锁。
ITer_ZC
·
2014-10-23 16:00
多线程
并发
聊聊高并发
(七)实现几种自旋锁(二)
在
聊聊高并发
(六)实现几种自旋锁(一)这篇中实现了两种基本的自旋锁:TASLock和TTASLock,它们的问题是会进行频繁的CAS操作,引发大量的缓存一致性流量,导致锁的性能不好。
ITer_ZC
·
2014-10-23 10:00
多线程
并发
聊聊高并发
(六)实现几种自旋锁(一)
在
聊聊高并发
(五)理解缓存一致性协议以及对并发编程的影响我们了解了处理器缓存一致性协议的原理,并且提到了它对并发编程的影响,“多个线程对同一个变量一直使用CAS操作,那么会有大量修改操作,从而产生大量的缓存一致性流量
iter_zc
·
2014-10-22 11:05
Java
高并发
聊聊高并发
聊聊高并发
(六)实现几种自旋锁(一)
在
聊聊高并发
(五)理解缓存一致性协议以及对并发编程的影响我们了解了处理器缓存一致性协议的原理,并且提到了它对并发编程的影响,“多个线程对同一个变量一直使用CAS操作,那么会有大量修改操作,从而产生大量的缓存一致性流量
ITer_ZC
·
2014-10-22 11:00
多线程
并发
聊聊高并发
(五)理解缓存一致性协议以及对并发编程的影响
Java作为一个跨平台的语言,它的实现要面对不同的底层硬件系统,设计一个中间层模型来屏蔽底层的硬件差异,给上层的开发者一个一致的使用接口。Java内存模型就是这样一个中间层的模型,它为程序员屏蔽了底层的硬件实现细节,支持大部分的主流硬件平台。要理解Java内存模型以及一些处理高并发的技术手段,理解一些基本的硬件知识是必须的。这篇会说一下跟并发编程相关的一些硬件知识。一个基本的CPU执行计算的过程如
iter_zc
·
2014-10-21 11:35
Java
高并发
聊聊高并发
聊聊高并发
(五)理解缓存一致性协议以及对并发编程的影响
Java作为一个跨平台的语言,它的实现要面对不同的底层硬件系统,设计一个中间层模型来屏蔽底层的硬件差异,给上层的开发者一个一致的使用接口。Java内存模型就是这样一个中间层的模型,它为程序员屏蔽了底层的硬件实现细节,支持大部分的主流硬件平台。要理解Java内存模型以及一些处理高并发的技术手段,理解一些基本的硬件知识是必须的。这篇会说一下跟并发编程相关的一些硬件知识。一个基本的CPU执行计算的过程如
ITer_ZC
·
2014-10-21 11:00
多线程
并发
聊聊高并发
(四)Java对象的表示模型和运行时内存表示
在继续了解Java内存模型之前,最好先理解Java对象的内存表示。在网上搜了下Java对象内存表示,说得都不够系统和到位。之前看了《Hotspot实战》一书,对JVM如何表示对象这块说得挺好,推荐一下。如果不理解JVM运行时的各种内存区域以及Java调用的过程,那么很难把Java内存模型理解到位。这个是一个比较大的主题,以后会陆续写一些JVM相关的。这里单把Java对象的内存拿出来聊聊,文中内容都
ITer_ZC
·
2014-10-10 11:00
jvm
并发
对象
聊聊高并发
(三)锁的一些基本概念
理解并发编程的一些基本概念很重要,给我们思考问题指明一个基本的方向。这篇说一说锁的一些基本概念。在通常情况下我们说的锁都指的是“互斥”锁,因为在还存在一些特殊的锁,比如“读写锁”,不完全是互斥的。这篇文章说的锁专指互斥锁。锁是处理并发的一种同步手段。单线程程序和并发程序的最终目的都是要保证程序的正确性,但是最大的区别是:单线程程序的正确性只关注程序的运行结果和目标是一致的并发程序的正确性除了运行结
ITer_ZC
·
2014-10-08 16:00
并发
聊聊高并发
(二)结合实例说说线程封闭和背后的设计思想
高并发问题抛去架构层面的问题,落实到代码层面就是多线程的问题。多线程的问题主要是线程安全的问题(其他还有活跃性问题,性能问题等)。那什么是线程安全?下面这个定义来自《Java并发编程实战》,这本书强烈推荐,是几个Java语言的作者合写的,都是并发编程方面的大神。线程安全指的是:当多个线程访问某个类时,这个类始终都能表现出正确的行为。正确指的是“所见即所知”,程序执行的结果和你所预想的结果一致。理解
ITer_ZC
·
2014-09-25 09:00
聊聊高并发
(一)背景及大纲
这几天翻看别人写的博客,大家都很关心并发的问题,也涉及到了实际处理并发的总总技术。结合之前的经验,我也突然有了些灵感,准备写几篇跟大家交流一下,也正好自己沉淀积累一下。大概的一个计划,并发问题在编程层面就是多线程的问题,最后会落实到具体的线程技术并发/线程的一些概念,概念很重要,没有理论指导的话会导致理解不够全面多线程问题的本质--有序性,可见性,原子性synchronize的底层实现volati
ITer_ZC
·
2014-09-25 09:00
多线程
并发
上一页
1
2
3
4
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他