letter Y A N. G Brass Letter F a n-spo D Pewter Uppercase Letter I N G
随笔 - 4, 文章 - 10, 评论 - 2, 引用 - 0
数据加载中……

java多线程

正确使用 Volatile 变量
     摘要: java™ 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量。这两种机制的提出都是为了实现代码线程的安全性。其中 Volatile 变量的同步性较差(但有时它更简单并且开销更低),而且其使用也更容易出错。在这期的 Java 理论与实践 中,Brian Goetz 将介绍几种正确使用 volatile 变量的模式,并针对其适用性限制提出一些建议。
  阅读全文

posted @ 2008-10-06 21:30 rainman 阅读(190) | 评论 (0)  编辑

ThreadLocal与synchronize
     摘要: Java良好的支持多线程。使用java,我们可以很轻松的编程一个多线程程序。但是使用多线程可能会引起并发访问的问题。synchronized和ThreadLocal都是用来解决多线程并发访问的问题。大家可能对synchronized较为熟悉,而对ThreadLocal就要陌生得多了。
并发问题。当一个对象被两个线程同时访问时,可能有一个线程会得到不可预期的结果。   阅读全文

posted @ 2008-10-06 12:13 rainman 阅读(715) | 评论 (1)  编辑

再谈ReentrantLock
     摘要: 重入锁(ReentrantLock)是一种递归无阻塞的同步机制。以前一直认为它是synchronized的简单替代,而且实现机制也不相差太远。不过最近实践过程中发现它们之间还是有着天壤之别。
以下是官方说明:一个可重入的互斥锁定 Lock,它具有与使用 synchronized 方法和语句所访问的隐式监视器锁定相同的一些基本行为和语义,但功能更强大。ReentrantLock 将由最近成功获得锁定,并且还没有释放该锁定的线程所拥有。当锁定没有被另一个线程所拥有时,调用 lock 的线程将成功获取该锁定并返回。如果当前线程已经拥有该锁定,此方法将立即返回。可以使用 isHeldByCurrentThread() 和 getHoldCount() 方法来检查此情况是否发生。  阅读全文

posted @ 2008-10-03 17:55 rainman 阅读(3934) | 评论 (0)  编辑

Java 理论与实践: 流行的原子
     摘要: 在 JDK 5.0 之前,如果不使用本机代码,就不能用 Java 语言编写无等待、无锁定的算法。在 java.util.concurrent 中添加原子变量类之后,这种情况发生了变化。请跟随并行专家 Brian Goetz 一起,了解这些新类如何使用 Java 语言开发高度可伸缩的无阻塞算法。您可以在本文的 论坛中与作者或其他读者共享您对本文的看法。(也可以通过单击文章顶部或者底部的 讨论链接来访问讨论。)  阅读全文

posted @ 2008-10-03 14:35 rainman 阅读(216) | 评论 (0)  编辑

实现 Java 多线程并发控制框架
     摘要: Java 提供了语言级别的线程支持,所以在 Java 中使用多线程相对于 C,C++ 来说更简单便捷,但本文并不是介绍如何在 Java 中使用多线程来来解决诸如 Web services, Number crunching 或者 I/O processing 之类的问题。在本文中,我们将讨论如何实现一个 Java 多线程的运行框架以及我们是如何来控制线程的并发同步以及顺序执行的。  阅读全文

posted @ 2008-10-02 23:12 rainman 阅读(613) | 评论 (1)  编辑

Synchronization and the Java Memory Model

posted @ 2008-09-30 16:55 rainman 阅读(281) | 评论 (0)  编辑

轻松使用线程: 同步不是敌人(转载自ibm developwork)
     摘要: synchronized   阅读全文

posted @ 2008-09-30 13:31 rainman 阅读(329) | 评论 (0)  编辑