Archive for Concurrency & Asynchronism

java.util.concurrent并发包诸类概览

java.util.concurrent并发包诸类概览

java.util.concurrent包的类都来自于JSR-166:Concurrent Utilities,官方的描述叫做“The JSR proposes a set of medium-level utilities that provide functionality commonly needed in concurrent programs. ”。作者是大

[......]阅读全文

分享到:

从DCL的对象安全发布谈起

从DCL的对象安全发布谈起

对于DCL(Double Check Lock)情况下的对象安全发布,一直理解得不足够清楚;在通过和同事,以及和互联网上一些朋友的讨论之后,我觉得已经把问题搞清楚了。我把我对这个问题的理解简要记录在这里。

现在有代码A:

class T {
	private static volatile T instance;
	public M m; // 这里没有final修饰

	publ

[......]阅读全文

分享到:

笔记:线程的同步和互斥

线程的同步和互斥

线程的同步:指多线程通过特定的手段(如互斥量)来控制线程之间的执行顺序。

线程的互斥:实指对共享资源的约束访问。多线程环境中,某些资源只允许一个线程使用,这类资源成为临界资源,线程之间的关系就表现为互斥的。

线程之间的同步和互斥是通过操作系统的信号量和PV操作原语来实现的。

互斥体(Mutex)

表现互斥现象的数据结构,也被当作二元信号灯。一个互斥基本上是一个多任务敏感的二元

[......]阅读全文

分享到:

Java多线程发展简史

Java多线程发展简史 这篇文章,大部分内容,是周五我做的一个关于如何进行Java多线程编程的Knowledge Sharing的一个整理,我希望能对Java从第一个版本开始,在多线程编程方面的大事件和发展脉络有一个描述,并且提及一些在多线程编程方面常见的问题。对于Java程序员来说,如果从历史的角度去了解一门语言一个特性的演进,或许能有不同收获。

 

引言

首先问这样一个问题,如果提到Java多线程编

[......]阅读全文

分享到:

同步、异步转化和任务执行

同步、异步转化和任务执行 正如动静是相对的概念,有了它们,世界才充满盎然生气;变和不变也是哲学上的对立统一,在代码的世界里也一样;同步异步呢?

首先,来粗略地看看同步和异步各自有些什么好处

同步的好处:

  • 1、同步流程对结果处理通常更为简单,可以就近处理。
  • 2、同步流程对结果的处理始终和前文保持在一个上下文内。
  • 3、同步流程可以很容易捕获、处理异常。
  • 4、同步流程是最天然的控制过程顺序执行的方式。

[......]阅读全文

分享到:

杂记:Java的无锁编程和锁优化

Peterson 算法(Dekker算法的演化),这个算法设计得很巧妙,理解的核心就是搞清楚三个标志位是怎样控制两个方法对临界区的访问的:

volatile int flag1 = 0; //主观因素:flag1表示方法1自身是否要求进入临界区   
volatile int flag2 = 0; //主观因素:flag2表示方法2自身是否要求进入临界区   
volatile int turn =

[......]阅读全文

分享到:

Preview on Feedage: