Concurrent
iteye_19132
这个作者很懒,什么都没留下…
展开
-
Java Concurrent (1)
本文节选自 Effective Java by Joshua Bloch 和 Concurrent Programming in Java by Doug Lea. 1.1 概述 多线程程序设计比单线程程序设计要困难的多,所以,如果一个库中的类能够帮助你从低层的多线程程序设计中解脱出来,那么一定要使用这个类。比如java.util.Timer。另外,util.concurrent...2008-02-14 20:40:19 · 131 阅读 · 0 评论 -
A Hierarchical CLH Queue Lock
A Hierarchical CLH Queue Lock (Victor Luchangco, Daniel Nussbaum, Nir Shavit) 这篇论文值得仔细推敲,虽然未必适合在Java中实际应用,但是至少提供了一种思路。2012-01-14 19:01:11 · 223 阅读 · 0 评论 -
Inside AbstractQueuedSynchronizer (4)
Inside AbstractQueuedSynchronizer (1)Inside AbstractQueuedSynchronizer (2)Inside AbstractQueuedSynchronizer (3)Inside AbstractQueuedSynchronizer (4) 3.6 ConditionObject Abstra...2012-01-08 17:06:55 · 138 阅读 · 0 评论 -
Inside AbstractQueuedSynchronizer (3)
Inside AbstractQueuedSynchronizer (1)Inside AbstractQueuedSynchronizer (2)Inside AbstractQueuedSynchronizer (3)Inside AbstractQueuedSynchronizer (4) 3.4 Template Method Abstra...2012-01-07 23:37:23 · 122 阅读 · 0 评论 -
Inside AbstractQueuedSynchronizer (2)
Inside AbstractQueuedSynchronizer (1)Inside AbstractQueuedSynchronizer (2)Inside AbstractQueuedSynchronizer (3)Inside AbstractQueuedSynchronizer (4) 3 AbstractQueuedSynchronizer ...2012-01-07 17:54:19 · 124 阅读 · 0 评论 -
Inside AbstractQueuedSynchronizer (1)
Inside AbstractQueuedSynchronizer (1)Inside AbstractQueuedSynchronizer (2)Inside AbstractQueuedSynchronizer (3)Inside AbstractQueuedSynchronizer (4) 1 Overview 如果查看Reentrant...2012-01-06 11:04:09 · 122 阅读 · 0 评论 -
Distributed Lock
1 Overview 在分布式系统中,通常会避免使用分布式锁。然而在某些场景下,还是存在对分布式锁的需求。跟普通锁相比,分布式锁面需要对的问题更多,例如怎样保证某个进程在持有锁时意外终止之后,其它进程也能够正常地获得锁等等。笔者认为一个比较好的分布式锁实现是Terracotta,但是这不是本文的重点,感兴趣的读者可以参考笔者的Terracotta in Action 系列文章(h...2011-08-02 22:02:29 · 510 阅读 · 0 评论 -
What's New on Java 7 Phaser
1 Overview Java 7的并发包中推出了Phaser,其功能跟CyclicBarrier和CountDownLatch有些重叠,但是提供了更灵活的用法,例如支持动态调整注册任务的数量等。本文在Phaser自带的示例代码基础上进行一下简单的分析。 2 Glossary2.1 Registration Phaser支持通过register()和bul...2011-07-29 10:15:26 · 97 阅读 · 0 评论 -
Sequantial Lock in Java
1 Overview Linux内核中常见的同步机制有Atomic Operation,Spin Locks,Semaphore,Mutex等。其中Spin Locks和Semaphore都支持读/写锁。此外,Linux内核还支持一种更轻量级的读/写锁定机制:Sequential Lock。跟其它读/写锁定机制相比,Sequential Lock有以下特点:在获取锁时偏向写锁。只...2011-06-07 17:00:41 · 151 阅读 · 0 评论 -
Java Concurrent (4)
本文节选自 Effective Java by Joshua Bloch 和 Concurrent Programming in Java by Doug Lea. 1.7 使用锁工具1.7.1 synchronized 的限制 内部的synchronized方法和块可以满足很多基于锁的应用,但是它有以下限制: 如果某个线程试图获得锁,而这个锁已经被其他线程持有,那么没...2008-02-14 21:31:24 · 90 阅读 · 0 评论 -
Java Concurrent (3)
本文节选自 Effective Java by Joshua Bloch 和 Concurrent Programming in Java by Doug Lea. 1.6 避免过多的同步1.6.1是否需要同步 过多的同步可能会导致性能降低、死锁,甚至不确定行为。通常,在同步区域内应该做尽可能少的工作。同步区域之外被调用的外来方法被称为“开放调用(open call)”。除了...2008-02-14 21:20:46 · 95 阅读 · 0 评论 -
Java Concurrent (2)
本文节选自 Effective Java by Joshua Bloch 和 Concurrent Programming in Java by Doug Lea. 1.3 原子数据的同步 java语言保证读或写一个变量是原子(atomic)的,除非这个变量的类型是long或double.换句话说,读入一个非long或double类型的变量,可以保证返回值一定是某个线程保存在该变量...2008-02-14 20:57:19 · 175 阅读 · 0 评论 -
Atomic Bit Operation in Linux Kernel
Linux Kernel支持atomic bit operation。一个有意思的问题是:为什么有必要保证位操作的原子性?原因在于它会确保每次操作一定生效。例如对某个位进行两次操作,分别是设置0和1,那么这两次操作都会被执行,而不会被优化成一次性设置1。这在概念上有点类似epoll的edge trigger 和 level trigger。此外在Java SE中,由于伪唤醒的存在,我们都会在一个循...2012-02-08 00:27:04 · 229 阅读 · 0 评论