一个日牯子
Home
Tags
GitHub
Author
2020-05-20
SVG
HTML
PDF
实
现
机
制
1
理
解
J
a
v
a
并
发
(
3
)
:
C
A
S
并
发
编
程
理
解
并
发
刨
根
问
底
C
o
n
t
e
n
t
s
实
现
机
制
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
A
B
A
问
题
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
:
,
即
比
较
再
交
换
。
增
加
了
并
发
包
其
下
面
的
类
使
用
算
法
实
现
了
区
别
于
同
步
锁
的
一
种
乐
观
锁
。
实
现
机
制
在
中
很
多
原
子
操
作
是
通
过
实
现
的
,
是
一
种
无
锁
的
方
式
,
比
如
的
自
增
操
作
:
p
u
b
l
i
c
c
l
a
s
s
A
t
o
m
i
c
I
n
t
e
g
e
r
e
x
t
e
n
d
s
N
u
m
b
e
r
i
m
p
l
e
m
e
n
t
s
j
a
v
a
.
i
o
.
S
e
r
i
a
l
i
z
a
b
l
e
{
p
r
i
v
a
t
e
s
t
a
t
i
c
f
i
n
a
l
l
o
n
g
s
e
r
i
a
l
V
e
r
s
i
o
n
U
I
D
=
6
2
1
4
7
9
0
2
4
3
4
1
6
8
0
7
0
5
0
L
;
/
/
s
e
t
u
p
t
o
u
s
e
U
n
s
a
f
e
.
c
o
m
p
a
r
e
A
n
d
S
w
a
p
I
n
t
f
o
r
u
p
d
a
t
e
s
p
r
i
v
a
t
e
s
t
a
t
i
c
f
i
n
a
l
U
n
s
a
f
e
u
n
s
a
f
e
=
U
n
s
a
f
e
.
g
e
t
U
n
s
a
f
e
(
)
;
p
r
i
v
a
t
e
s
t
a
t
i
c
f
i
n
a
l
l
o
n
g
v
a
l
u
e
O
f
f
s
e
t
;
s
t
a
t
i
c
{
t
r
y
{
v
a
l
u
e
O
f
f
s
e
t
=
u
n
s
a
f
e
.
o
b
j
e
c
t
F
i
e
l
d
O
f
f
s
e
t
(
A
t
o
m
i
c
I
n
t
e
g
e
r
.
c
l
a
s
s
.
g
e
t
D
e
c
l
a
r
e
d
F
i
e
l
d
(
"
v
a
l
u
e
"
)
)
;
}
c
a
t
c
h
(
E
x
c
e
p
t
i
o
n
e
x
)
{
t
h
r
o
w
n
e
w
E
r
r
o
r
(
e
x
)
;
}
}
p
r
i
v
a
t
e
v
o
l
a
t
i
l
e
i
n
t
v
a
l
u
e
;
/
/
.
.
.
p
u
b
l
i
c
f
i
n
a
l
i
n
t
g
e
t
A
n
d
I
n
c
r
e
m
e
n
t
(
)
{
r
e
t
u
r
n
u
n
s
a
f
e
.
g
e
t
A
n
d
A
d
d
I
n
t
(
t
h
i
s
,
v
a
l
u
e
O
f
f
s
e
t
,
1
)
;
}
/
/
.
.
.
}
这
里
的
操
作
调
用
了
类
来
实
现
,
而
这
个
类
里
面
的
实
代
码
是
这
样
的
:
p
u
b
l
i
c
f
i
n
a
l
n
a
t
i
v
e
b
o
o
l
e
a
n
c
o
m
p
a
r
e
A
n
d
S
w
a
p
I
n
t
(
O
b
j
e
c
t
v
a
r
1
,
l
o
n
g
v
a
r
2
,
i
n
t
v
a
r
4
,
i
n
t
v
a
r
5
)
;
p
u
b
l
i
c
f
i
n
a
l
i
n
t
g
e
t
A
n
d
A
d
d
I
n
t
(
O
b
j
e
c
t
v
a
r
1
,
l
o
n
g
v
a
r
2
,
i
n
t
v
a
r
4
)
{
i
n
t
v
a
r
5
;
d
o
{
v
a
r
5
=
t
h
i
s
.
g
e
t
I
n
t
V
o
l
a
t
i
l
e
(
v
a
r
1
,
v
a
r
2
)
;
}
w
h
i
l
e
(
!
t
h
i
s
.
c
o
m
p
a
r
e
A
n
d
S
w
a
p
I
n
t
(
v
a
r
1
,
v
a
r
2
,
v
a
r
5
,
v
a
r
5
+
v
a
r
4
)
)
;
r
e
t
u
r
n
v
a
r
5
;
}
A
B
A
问
题
2
而
最
终
是
用
到
了
的
方
法
,
这
部
分
的
源
码
可
以
在
源
码
中
找
到
,
而
最
终
是
会
调
用
到
这
样
到
指
令
来
完
成
。
U
N
S
A
F
E
_
E
N
T
R
Y
(
j
b
o
o
l
e
a
n
,
U
n
s
a
f
e
_
C
o
m
p
a
r
e
A
n
d
S
w
a
p
I
n
t
(
J
N
I
E
n
v
*
e
n
v
,
j
o
b
j
e
c
t
u
n
s
a
f
e
,
j
o
b
j
e
c
t
o
b
j
,
j
l
o
n
g
o
f
f
s
e
t
,
j
i
n
t
e
,
j
i
n
t
x
)
)
U
n
s
a
f
e
W
r
a
p
p
e
r
(
"
U
n
s
a
f
e
_
C
o
m
p
a
r
e
A
n
d
S
w
a
p
I
n
t
"
)
;
o
o
p
p
=
J
N
I
H
a
n
d
l
e
s
:
:
r
e
s
o
l
v
e
(
o
b
j
)
;
j
i
n
t
*
a
d
d
r
=
(
j
i
n
t
*
)
i
n
d
e
x
_
o
o
p
_
f
r
o
m
_
f
i
e
l
d
_
o
f
f
s
e
t
_
l
o
n
g
(
p
,
o
f
f
s
e
t
)
;
r
e
t
u
r
n
(
j
i
n
t
)
(
A
t
o
m
i
c
:
:
c
m
p
x
c
h
g
(
x
,
a
d
d
r
,
e
)
)
=
=
e
;
U
N
S
A
F
E
_
E
N
D
其
中
,
源
码
位
于
:
A
B
A
问
题
使
用
一
个
问
题
就
是
可
能
出
现
问
题
,
因
为
到
逻
辑
就
是
,
假
设
更
新
到
时
候
判
断
出
值
跟
期
望
的
一
致
那
么
就
会
进
行
更
改
;
但
实
际
值
跟
期
望
的
一
致
并
不
能
代
表
值
没
有
发
生
过
变
化
。
可
能
的
场
景
就
是
,
值
被
改
成
别
的
然
后
又
改
回
来
了
,
就
是
从
,
然
后
又
变
成
。
解
决
这
个
问
题
的
思
路
在
于
,
想
办
法
标
记
出
变
化
。
通
常
的
做
法
是
利
用
版
本
号
(
而
不
是
值
)
,
保
证
版
本
号
每
次
都
会
变
化
。
中
提
供
了
来
解
决
问
题
,
实
现
如
下
:
p
u
b
l
i
c
b
o
o
l
e
a
n
c
o
m
p
a
r
e
A
n
d
S
e
t
(
V
e
x
p
e
c
t
e
d
R
e
f
e
r
e
n
c
e
,
V
n
e
w
R
e
f
e
r
e
n
c
e
,
i
n
t
e
x
p
e
c
t
e
d
S
t
a
m
p
,
i
n
t
n
e
w
S
t
a
m
p
)
{
P
a
i
r
<
V
>
c
u
r
r
e
n
t
=
p
a
i
r
;
r
e
t
u
r
n
e
x
p
e
c
t
e
d
R
e
f
e
r
e
n
c
e
=
=
c
u
r
r
e
n
t
.
r
e
f
e
r
e
n
c
e
&
&
e
x
p
e
c
t
e
d
S
t
a
m
p
=
=
c
u
r
r
e
n
t
.
s
t
a
m
p
&
&
(
(
n
e
w
R
e
f
e
r
e
n
c
e
=
=
c
u
r
r
e
n
t
.
r
e
f
e
r
e
n
c
e
&
&
n
e
w
S
t
a
m
p
=
=
c
u
r
r
e
n
t
.
s
t
a
m
p
)
|
|
c
a
s
P
a
i
r
(
c
u
r
r
e
n
t
,
P
a
i
r
.
o
f
(
n
e
w
R
e
f
e
r
e
n
c
e
,
n
e
w
S
t
a
m
p
)
)
)
;
}
HTML view coming soon.
Download PDF
for the full formatted version.