一个日牯子
Home
Tags
GitHub
Author
2020-06-01
SVG
HTML
PDF
基
本
用
法
1
理
解
J
a
v
a
并
发
(
5
)
:
A
Q
S
并
发
编
程
理
解
并
发
刨
根
问
底
C
o
n
t
e
n
t
s
基
本
用
法
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
样
例
:
实
现
简
单
的
锁
原
理
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
获
取
状
态
操
作
是
一
个
机
遇
等
待
队
列
实
现
锁
的
框
架
,
用
来
实
现
诸
如
、
等
。
p
u
b
l
i
c
a
b
s
t
r
a
c
t
c
l
a
s
s
A
b
s
t
r
a
c
t
Q
u
e
u
e
d
S
y
n
c
h
r
o
n
i
z
e
r
e
x
t
e
n
d
s
A
b
s
t
r
a
c
t
O
w
n
a
b
l
e
S
y
n
c
h
r
o
n
i
z
e
r
i
m
p
l
e
m
e
n
t
s
S
e
r
i
a
l
i
z
a
b
l
e
基
本
用
法
在
类
里
面
维
护
了
一
个
原
子
类
型
的
状
态
值
(
这
个
值
的
具
体
含
义
由
子
类
去
定
义
)
。
要
使
用
,
推
荐
的
做
法
是
在
在
一
个
私
有
的
内
部
类
中
去
实
现
,
然
后
需
要
通
过
本
身
提
供
的
几
个
方
法
:
g
e
t
S
t
a
t
e
(
)
s
e
t
S
t
a
t
e
(
i
n
t
)
c
o
m
p
a
r
e
A
n
d
S
e
t
S
t
a
t
e
(
i
n
t
,
i
n
t
)
通
过
调
用
上
述
三
个
方
法
来
维
护
同
步
状
态
,
并
实
现
这
些
方
法
:
t
r
y
A
c
q
u
i
r
e
(
i
n
t
)
:
尝
试
获
取
状
态
t
r
y
R
e
l
e
a
s
e
(
i
n
t
)
:
尝
试
释
放
状
态
t
r
y
A
c
q
u
i
r
e
S
h
a
r
e
d
(
i
n
t
)
t
r
y
R
e
l
e
a
s
e
S
h
a
r
e
d
(
i
n
t
)
i
s
H
e
l
d
E
x
c
l
u
s
i
v
e
l
y
(
)
判
断
当
前
线
程
是
否
持
有
排
它
锁
而
其
他
的
同
步
操
作
、
队
列
管
理
等
,
在
中
已
经
完
成
了
。
样
例
:
实
现
简
单
的
锁
在
的
文
档
中
给
了
一
个
基
本
的
用
法
实
现
一
个
不
可
重
入
的
锁
。
首
先
需
要
的
就
是
实
现
内
部
的
类
:
c
l
a
s
s
M
u
t
e
x
i
m
p
l
e
m
e
n
t
s
L
o
c
k
,
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
c
l
a
s
s
S
y
n
c
e
x
t
e
n
d
s
A
b
s
t
r
a
c
t
Q
u
e
u
e
d
S
y
n
c
h
r
o
n
i
z
e
r
{
p
r
o
t
e
c
t
e
d
b
o
o
l
e
a
n
i
s
H
e
l
d
E
x
c
l
u
s
i
v
e
l
y
(
)
{
r
e
t
u
r
n
g
e
t
S
t
a
t
e
(
)
=
=
1
;
}
p
u
b
l
i
c
b
o
o
l
e
a
n
t
r
y
A
c
q
u
i
r
e
(
i
n
t
a
c
q
u
i
r
e
s
)
{
a
s
s
e
r
t
a
c
q
u
i
r
e
s
=
=
1
;
/
/
O
t
h
e
r
w
i
s
e
u
n
u
s
e
d
i
f
(
c
o
m
p
a
r
e
A
n
d
S
e
t
S
t
a
t
e
(
0
,
1
)
)
{
s
e
t
E
x
c
l
u
s
i
v
e
O
w
n
e
r
T
h
r
e
a
d
(
T
h
r
e
a
d
.
c
u
r
r
e
n
t
T
h
r
e
a
d
(
)
)
;
r
e
t
u
r
n
t
r
u
e
;
原
理
2
}
r
e
t
u
r
n
f
a
l
s
e
;
}
p
r
o
t
e
c
t
e
d
b
o
o
l
e
a
n
t
r
y
R
e
l
e
a
s
e
(
i
n
t
r
e
l
e
a
s
e
s
)
{
a
s
s
e
r
t
r
e
l
e
a
s
e
s
=
=
1
;
/
/
O
t
h
e
r
w
i
s
e
u
n
u
s
e
d
i
f
(
g
e
t
S
t
a
t
e
(
)
=
=
0
)
t
h
r
o
w
n
e
w
I
l
l
e
g
a
l
M
o
n
i
t
o
r
S
t
a
t
e
E
x
c
e
p
t
i
o
n
(
)
;
s
e
t
E
x
c
l
u
s
i
v
e
O
w
n
e
r
T
h
r
e
a
d
(
n
u
l
l
)
;
s
e
t
S
t
a
t
e
(
0
)
;
r
e
t
u
r
n
t
r
u
e
;
}
}
/
/
.
.
.
}
然
后
,
加
锁
、
解
锁
等
操
作
都
可
以
通
过
这
个
内
部
类
来
完
成
了
:
c
l
a
s
s
M
u
t
e
x
i
m
p
l
e
m
e
n
t
s
L
o
c
k
,
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
f
i
n
a
l
S
y
n
c
s
y
n
c
=
n
e
w
S
y
n
c
(
)
;
/
/
这
里
通
过
获
取
或
者
释
放
状
态
1
(
1
表
示
锁
定
)
来
实
现
加
锁
和
解
锁
的
操
作
p
u
b
l
i
c
v
o
i
d
l
o
c
k
(
)
{
s
y
n
c
.
a
c
q
u
i
r
e
(
1
)
;
}
p
u
b
l
i
c
b
o
o
l
e
a
n
t
r
y
L
o
c
k
(
)
{
r
e
t
u
r
n
s
y
n
c
.
t
r
y
A
c
q
u
i
r
e
(
1
)
;
}
p
u
b
l
i
c
v
o
i
d
u
n
l
o
c
k
(
)
{
s
y
n
c
.
r
e
l
e
a
s
e
(
1
)
;
}
p
u
b
l
i
c
C
o
n
d
i
t
i
o
n
n
e
w
C
o
n
d
i
t
i
o
n
(
)
{
r
e
t
u
r
n
s
y
n
c
.
n
e
w
C
o
n
d
i
t
i
o
n
(
)
;
}
p
u
b
l
i
c
b
o
o
l
e
a
n
i
s
L
o
c
k
e
d
(
)
{
r
e
t
u
r
n
s
y
n
c
.
i
s
H
e
l
d
E
x
c
l
u
s
i
v
e
l
y
(
)
;
}
p
u
b
l
i
c
b
o
o
l
e
a
n
h
a
s
Q
u
e
u
e
d
T
h
r
e
a
d
s
(
)
{
r
e
t
u
r
n
s
y
n
c
.
h
a
s
Q
u
e
u
e
d
T
h
r
e
a
d
s
(
)
;
}
p
u
b
l
i
c
v
o
i
d
l
o
c
k
I
n
t
e
r
r
u
p
t
i
b
l
y
(
)
t
h
r
o
w
s
I
n
t
e
r
r
u
p
t
e
d
E
x
c
e
p
t
i
o
n
{
s
y
n
c
.
a
c
q
u
i
r
e
I
n
t
e
r
r
u
p
t
i
b
l
y
(
1
)
;
}
p
u
b
l
i
c
b
o
o
l
e
a
n
t
r
y
L
o
c
k
(
l
o
n
g
t
i
m
e
o
u
t
,
T
i
m
e
U
n
i
t
u
n
i
t
)
t
h
r
o
w
s
I
n
t
e
r
r
u
p
t
e
d
E
x
c
e
p
t
i
o
n
{
r
e
t
u
r
n
s
y
n
c
.
t
r
y
A
c
q
u
i
r
e
N
a
n
o
s
(
1
,
u
n
i
t
.
t
o
N
a
n
o
s
(
t
i
m
e
o
u
t
)
)
;
}
}
原
理
内
部
是
使
用
的
基
于
队
列
的
同
步
机
制
。
原
理
3
a
c
q
u
i
r
e
获
取
状
态
意
味
着
尝
试
通
过
获
取
某
个
状
态
从
而
获
取
到
锁
。
的
过
程
如
下
:
首
先
尝
试
直
接
通
过
的
方
式
改
变
,
如
果
成
功
则
直
接
获
取
到
锁
如
果
上
一
步
失
败
,
那
么
表
明
其
他
线
程
获
取
到
锁
,
则
尝
试
将
当
前
线
程
加
入
到
队
列
末
尾
进
行
排
队
(
同
样
加
入
到
队
列
末
尾
也
是
通
过
实
现
)
加
入
到
队
列
后
,
中
断
当
前
线
程
(
但
具
体
线
程
如
何
处
理
中
断
要
看
线
程
自
己
了
)
p
u
b
l
i
c
f
i
n
a
l
v
o
i
d
a
c
q
u
i
r
e
(
i
n
t
a
r
g
)
{
i
f
(
!
t
r
y
A
c
q
u
i
r
e
(
a
r
g
)
&
&
a
c
q
u
i
r
e
Q
u
e
u
e
d
(
a
d
d
W
a
i
t
e
r
(
N
o
d
e
.
E
X
C
L
U
S
I
V
E
)
,
a
r
g
)
)
s
e
l
f
I
n
t
e
r
r
u
p
t
(
)
;
}
p
r
i
v
a
t
e
N
o
d
e
a
d
d
W
a
i
t
e
r
(
N
o
d
e
m
o
d
e
)
{
N
o
d
e
n
o
d
e
=
n
e
w
N
o
d
e
(
T
h
r
e
a
d
.
c
u
r
r
e
n
t
T
h
r
e
a
d
(
)
,
m
o
d
e
)
;
N
o
d
e
p
r
e
d
=
t
a
i
l
;
/
/
如
果
发
现
队
列
不
为
空
,
那
么
尝
试
一
次
性
快
速
插
入
到
尾
部
(
如
果
失
败
的
话
则
通
过
e
n
q
方
法
插
入
)
/
/
在
没
有
线
程
竞
争
的
情
况
下
,
会
比
e
n
q
稍
微
快
一
点
,
e
n
q
里
面
还
要
处
理
队
列
为
空
的
情
况
i
f
(
p
r
e
d
!
=
n
u
l
l
)
{
n
o
d
e
.
p
r
e
v
=
p
r
e
d
;
i
f
(
c
o
m
p
a
r
e
A
n
d
S
e
t
T
a
i
l
(
p
r
e
d
,
n
o
d
e
)
)
{
/
/
通
过
C
A
S
设
置
t
a
i
l
成
功
,
这
时
候
t
a
i
l
已
经
是
当
前
n
o
d
e
,
再
把
之
前
的
t
a
i
l
(
p
r
e
d
)
连
接
到
自
己
p
r
e
d
.
n
e
x
t
=
n
o
d
e
;
r
e
t
u
r
n
n
o
d
e
;
}
}
/
/
e
n
q
的
逻
辑
基
本
上
与
上
面
一
样
,
区
别
在
于
1
.
处
理
队
列
为
空
的
情
况
,
要
插
入
到
队
列
头
部
;
2
.
C
A
S
失
败
后
会
重
试
直
到
成
功
e
n
q
(
n
o
d
e
)
;
r
e
t
u
r
n
n
o
d
e
;
}
p
r
i
v
a
t
e
N
o
d
e
e
n
q
(
f
i
n
a
l
N
o
d
e
n
o
d
e
)
{
f
o
r
(
;
;
)
{
N
o
d
e
t
=
t
a
i
l
;
i
f
(
t
=
=
n
u
l
l
)
{
原
理
4
/
/
如
果
发
现
队
列
为
空
那
么
首
先
把
h
e
a
d
和
t
a
i
l
都
设
置
为
空
节
点
i
f
(
c
o
m
p
a
r
e
A
n
d
S
e
t
H
e
a
d
(
n
e
w
N
o
d
e
(
)
)
)
t
a
i
l
=
h
e
a
d
;
}
e
l
s
e
{
n
o
d
e
.
p
r
e
v
=
t
;
i
f
(
c
o
m
p
a
r
e
A
n
d
S
e
t
T
a
i
l
(
t
,
n
o
d
e
)
)
{
t
.
n
e
x
t
=
n
o
d
e
;
r
e
t
u
r
n
t
;
}
}
}
}
r
e
l
e
a
s
e
操
作
当
释
放
锁
的
时
候
,
会
唤
醒
一
个
后
继
节
点
,
这
个
节
点
通
常
是
后
一
个
节
点
(
如
果
后
一
个
节
点
了
则
要
从
队
列
尾
部
遍
历
直
到
找
到
真
正
的
后
继
节
点
)
。
p
u
b
l
i
c
f
i
n
a
l
b
o
o
l
e
a
n
r
e
l
e
a
s
e
(
i
n
t
a
r
g
)
{
i
f
(
t
r
y
R
e
l
e
a
s
e
(
a
r
g
)
)
{
N
o
d
e
h
=
h
e
a
d
;
i
f
(
h
!
=
n
u
l
l
&
&
h
.
w
a
i
t
S
t
a
t
u
s
!
=
0
)
u
n
p
a
r
k
S
u
c
c
e
s
s
o
r
(
h
)
;
r
e
t
u
r
n
t
r
u
e
;
}
r
e
t
u
r
n
f
a
l
s
e
;
}
HTML view coming soon.
Download PDF
for the full formatted version.