Java并发编程实战
文章平均质量分 73
Sachiel.
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java并发编程——第2章:线程安全性(一)
要编写线程安全的代码,其核心是对状态访问进行管理,特别是对共享的(Shared)、可变的(Mutable)状态进行管理。 对象的状态是指:储存在状态变量中的数据(指可影响任何外部可见行为的数据),还可能包括其他依赖对象的域。 当多个线程访问一个可变的状态变量时没有使用合适的同步,那么程序就会出现错误。三种方式修正这个错误: ① 将可变状态变量转换为不...原创 2018-09-12 14:06:00 · 236 阅读 · 0 评论 -
Java并发编程——第2章:线程安全性(二)
2.3.2 重入 由于Widget和LoggingWidget中的doSomething()都是synchronized方法,所以每个doSomething()方法执行前,都会获取Weight上的锁。 super.doSomething() 会产生锁的重入,若没有重入机制,子类线程会一直阻塞下去。 锁操作的粒度是“线程” 而不是“调用”,某个线程试图获得一个已经由他自己持有的...原创 2018-09-13 11:59:03 · 299 阅读 · 0 评论 -
Java并发编程——第3章:对象的共享(一)
本章将介绍如何共享和发布对象,从而使他们能够安全地由多个线程访问。 3.1 可见性 当读操作和写操作在不同的线程中执行时,我们无法确保执行读操作的线程能适时的看到其他线程写入的值,有时甚至是根本不可能的事。为了确保多个线程之间对写操作的可见性,必须引入同步机制。 实例代码 (┬_┬): package chapter3; //因为代码中没有引入同步机制,所以无法保证主程序写入的ready...原创 2018-09-13 15:25:15 · 172 阅读 · 0 评论 -
Java并发编程——第3章:对象的共享(二)
3.1.4 Volatile变量 Java语言提供了一种削弱的同步机制,即Volatile变量,用来确保将变量的更新通知到其他线程。 在访问Volatile变量时不会执行加锁操作,因此也就不会执行线程阻塞,是一种比synchronized更轻量级的同步机制。 当把变量声明为Volatile后,编译器和运行时都会注意到这个变量是共享的,因此不会讲该变量上的操作与其他内存操作一起重排序。Vloa...原创 2018-09-14 11:59:52 · 154 阅读 · 0 评论
分享