- 博客(9)
- 收藏
- 关注
原创 《Java Concurrency in Practice》之可见性(Visibility)
原文:Visibility is subtle because the things that can go wrong are so counterintuitive. 译文:可见性是微妙的,因为可能出错的事情是如此的有悖常理。 public class NoVisibility { private static boolean ready; private
2014-03-31 12:55:48 917
原创 《Java Concurrency in Practice》之加锁机制(Locking)
@NotThreadSafepublic class UnsafeCachingFactorizer extends HttpServlet { private static final long serialVersionUID = 1L; private final AtomicReference lastNumber = new AtomicReference(); private
2014-03-29 11:19:14 908
原创 《Java Concurrency in Practice》之原子性(Atomicity)
假定有两个操作A和B,如果从执行A的线程来看,当另一个线程执行B时,要么将B全部执行完,要么完全不执行B,那么A和B对彼此来说是原子的。原子操作是指,对于访问同一个状态的所有操作(包括该操作本身)来说,这个操作都是一个以原子方式执行的操作。 1、竞态条件(Race conditions):在并发编程中,错误的结果在倒霉时刻(unlucky timing)存在的可能性,是一种非常重
2014-03-29 08:35:07 988
原创 《Java Concurrency in Practice》之线程安全性
或许令人感到奇怪的是,并发编程并不像大家所想的那样,需要使用大量的线程或者锁,至多不会超过土木工程中铆钉和工字梁的数量。当然,要建造一座坚固的桥梁,需要正确地使用大量的铆钉和工字梁。同理,构建稳健的并发程序时,也需要正确地使用线程和锁。但是,这些终归只是一些机制。编写线程安全的代码,其核心在于管理访问状态,特别是对共享的和可变的这两种状态的访问。 从非正式的意义来讲,对象的状态是指存储在
2014-03-28 08:44:09 899
原创 《Java Concurrency in Practice》之初识并发编程
编写正确的程序很难,编写正确的并发程序则难上加难。 之所心要编写并发程序,主要是因为线程能使复杂的异步代码变得更简单,从而极大地简化了复杂系统的开发。欲充分发挥多处理器系统的强大计算能力,最简单的方式就是使用线程。 众所周知,早期的计算机不包含操作系统,从头到尾只执行一个程序,并且这个程序能访问计算机中的所有资源。 操作系统的出现使得计算机每次
2014-03-23 23:18:44 820
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人