
juc
kjfcpua
这个作者很懒,什么都没留下…
展开
-
java jmm
1.什么是JMM? JMM即Java Memory Model,设想有这样一条赋值语句:int a = 1;而a为诸多线程所共享, JMM所关注的问题就是:“读取a的线程在何时会看到值为1的这个写入?” 2. 为什么关注JMM? 在多数情况下,即使是并发程序的程序员,也并不特别关心JMM,因为Java语言与JVM用更高抽象的“同步”语义隐藏了JMM的语义,使得程序转载 2013-01-05 17:17:54 · 2920 阅读 · 0 评论 -
JMM(java内存模型)
什么是happens-before? happens-before就是“什么什么一定在什么什么之前运行”,也就是保证顺序性。 因为CPU是可以不按我们写代码的顺序执行内存的存取过程的,也就是指令会乱序或并行运行, 只有上面的happens-before所规定的情况下,才保证顺序性。 如: Java代码 public class Test {转载 2013-01-07 17:16:02 · 867 阅读 · 0 评论 -
Event-Listerner事件监听模式
事件监听模式其实就是一种观察者模式,只是角度有点不同,在Java的JavaBean机制以及GUI中都使用了事件监听模式。在如今AJAX RIA客户端中,事件监听模式也成为一个主要的界面模式。 事件监听模式分同步和异步两种实现方式,JavaBean机制和GUI基本都是同步机制,事件监听异步模型,需要引入Event Queue。 事件监听同步模式分两个部分:Event Source和Eve转载 2013-01-25 11:13:02 · 1516 阅读 · 0 评论 -
java.util.concurrent 包下的 Synchronizer 框架
看完书 java concurrency in practice 当然是想找点啥好玩的东东玩玩。 当看到了Doug Lee 的论文 > 大呼来的太晚喔, 前段时间看那个ReentrantLock 的代码真的是痛苦啊,不过现在也不晚不是。 呵呵, 上菜:这个框架的核心是一个AbstractQueuedSynchronizer 类 (下面简称AQS) 它基本上的思路是:转载 2013-01-25 12:05:09 · 1658 阅读 · 0 评论 -
JVM伪共享
伪共享False sharing说明JVM底层技术也不让人那么放心。 内存缓存系统中基本单元是高速缓存行(Cache lines). cpu会把数据从内存加载到高速缓存中 ,这样可以获得更好的性能,高速缓存默认大小是64 Byte为一个区域,一个区域在一个时间点只允许一个核心操作,也就是说不能有多个核心同时操作一个缓存区域。 因为高速缓存是64字节,而Hotspot JVM的对转载 2013-01-25 11:11:52 · 1395 阅读 · 0 评论 -
ReentrantLock Fair 与 Unfair 的巨大差异
ReentrantLock 可重入的锁是我们平常除了intrinsic lock (也就是 synchronized 方法, synchronized block)之外用得最多的了同步方式了。 一般情况下 我们用 ReentrantLock 的时候就是用它的默认建构函数方式 new ReentrantLock (); 但其实它带一个 参数 是否 fair。如果是t转载 2013-01-25 12:05:57 · 3244 阅读 · 0 评论 -
Java多线程发展简史
这篇文章,大部分内容,是周五我做的一个关于如何进行Java多线程编程的Knowledge Sharing的一个整理,我希望能对Java从第一个版本开始,在多线程编程方面的大事件和发展脉络有一个描述,并且提及一些在多线程编程方面常见的问题。对于Java程序员来说,如果从历史的角度去了解一门语言一个特性的演进,或许能有不同收获。 引言 首先问这样一个问题,如果提到Java多线程编程,你会想转载 2013-01-11 22:55:24 · 815 阅读 · 0 评论 -
J.U.C包介绍
一、包结构 1.线程池 2.同步集合 a) BlockingQueue ArrayBlockingQueue LinkedBlockingQueue PriorityBlockingQueue DelayQueue SynchronousQueue ConcurrentLinkedQueue b) ConcurrentMap ConcurrentHas转载 2013-08-23 13:05:44 · 1374 阅读 · 0 评论 -
JUC 基础内容概述
Concurrent Programming in Java 的作者 Doug Lea 编写了一个极其优秀的、免费的并发实用程序包,它包括并发应用程序的锁、互斥、队列、线程池、轻量级任务、有效的并发集合、原子的算术操作和其它基本构件。我们一般称这个包为 J.U.C。 1. JUC概况 以下是Java JUC包的主体结构: Atomic : AtomicIntegerLocks转载 2013-08-23 12:25:07 · 6241 阅读 · 0 评论