Happens-Before规则详解及其应用.pdfVIP

  • 0
  • 0
  • 约4.72千字
  • 约 4页
  • 2026-10-15 发布于北京
  • 举报

Happens‑Before规则?

1.

程序顺序规则:同一个线程中的每个操作,都happens‑before于该线程中的任何后续操作。

doublepi=3.14;

//

双精度浮点数

r=1.0;

//

双精度浮点数area=pi

*r*r;//C

一个线程中,按照程序顺序,前面的操作Happens‑Before于后续的任意操作。这个还是非常好理

解的,比如上面那三行代码,第一行的double

pi

=3.14;

happens‑before于double

r

1.0;,

这就是规则1的内容,比较符合单线程里的逻辑思维,很好理解。

2.

监视器规则:对一个锁的,happens‑before于随后对这个锁的加锁。这个规则中说的锁其实

就是Java里的synchronized。例如下面的代码,在进入同步块之前,会自动加锁,而在代码块执行

完会自动释放锁,加锁以及释放锁都是编译器帮我们实现的。

synchronized

(this)

{

//此处自动加锁//

x是共

享变量,初始值=10if

(this.x

12)

{

this.x

=12;

文档评论(0)

1亿VIP精品文档

相关文档