一个日牯子
Home
Tags
GitHub
Author
2019-10-28
SVG
HTML
PDF
W
a
i
t
/
N
o
t
i
f
y
1
理
解
J
a
v
a
并
发
(
1
)
:
基
本
机
制
刨
根
问
底
理
解
并
发
并
发
编
程
C
o
n
t
e
n
t
s
同
步
(
S
y
n
c
h
r
o
n
i
z
a
t
i
o
n
)
与
监
视
器
(
M
o
n
i
t
o
r
)
机
制
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
W
a
i
t
/
N
o
t
i
f
y
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
线
程
的
生
命
周
期
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
S
l
e
e
p
/
Y
i
e
l
d
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
C
o
n
t
e
x
t
s
w
i
t
c
h
i
n
g
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
线
程
是
操
作
系
统
中
进
行
运
算
调
度
的
最
小
单
位
,
它
是
一
个
单
一
顺
序
的
控
制
流
,
不
论
是
对
于
单
核
还
是
多
核
的
,
都
能
比
较
有
效
的
提
高
程
序
的
吞
吐
率
。
在
中
,
创
建
一
个
线
程
的
唯
一
方
法
是
创
建
一
个
T
h
r
e
a
d
类
的
实
例
,
并
调
用
s
t
a
r
t
(
)
方
法
以
启
动
该
线
程
。
然
而
当
多
个
线
程
同
时
执
行
时
,
如
何
保
证
线
程
之
间
是
按
照
我
们
期
待
的
方
式
在
运
行
呢
?
提
供
了
多
种
机
制
来
保
证
多
个
线
程
之
间
的
交
互
。
同
步
(
S
y
n
c
h
r
o
n
i
z
a
t
i
o
n
)
与
监
视
器
(
M
o
n
i
t
o
r
)
机
制
显
而
易
见
最
基
本
最
常
见
的
和
多
线
程
有
关
的
就
是
同
步
s
y
n
c
h
r
o
n
i
z
e
d
关
键
字
了
,
它
底
层
是
使
用
实
现
的
。
那
么
究
竟
什
么
是
M
o
n
i
t
o
r
呢
?
根
据
的
描
述
,
在
中
,
每
一
个
对
象
都
有
一
个
与
之
关
联
的
,
允
许
线
程
可
以
去
l
o
c
k
或
者
u
n
l
o
c
k
这
个
。
实
际
上
:
m
o
n
i
t
o
r
是
独
立
于
语
言
之
上
的
一
个
概
念
(
没
想
到
还
有
另
外
一
个
名
字
管
程
)
,
保
证
在
运
行
线
程
之
前
获
取
互
斥
锁
在
中
,
任
何
对
象
j
a
v
a
.
l
a
n
g
.
O
b
j
e
c
t
都
可
以
允
许
作
为
一
个
,
所
以
会
有
w
a
i
t
、
n
o
t
i
f
y
之
类
的
方
法
s
y
n
c
h
r
o
n
i
z
e
d
可
以
作
用
于
代
码
块
或
者
方
法
上
。
如
果
作
用
在
代
码
块
上
,
它
会
尝
试
去
这
个
对
象
的
,
如
果
不
成
功
将
会
等
待
直
到
成
功
。
而
当
执
行
完
毕
后
,
无
论
是
否
出
现
异
常
,
都
将
会
释
放
这
个
锁
。
如
果
作
用
在
方
法
上
,
唯
一
的
区
别
在
于
,
如
果
是
实
例
方
法
,
那
么
将
使
用
这
个
实
例
作
为
,
也
就
是
t
h
i
s
;
如
果
是
静
态
方
法
,
那
么
使
用
的
是
所
在
类
的
C
l
a
s
s
对
象
。
W
a
i
t
/
N
o
t
i
f
y
每
一
个
都
包
含
一
个
等
待
线
程
的
集
合
。
当
对
象
创
建
的
时
候
,
这
个
队
列
是
空
的
,
当
调
用
O
b
j
e
c
t
.
w
a
i
t
(
)
、
O
b
j
e
c
t
.
n
o
f
i
t
y
(
)
以
及
O
b
j
e
c
t
.
n
o
f
i
t
y
A
l
l
(
)
方
法
的
时
候
,
会
自
动
添
加
或
者
移
除
队
列
中
的
线
程
。
或
者
当
线
程
的
中
断
状
态
发
生
改
变
的
时
候
,
也
会
引
起
变
化
。
W
a
i
t
调
用
w
a
i
t
方
法
将
使
当
前
线
程
休
眠
直
到
另
一
个
线
程
通
过
n
o
t
i
f
y
或
者
n
o
t
i
f
y
A
l
l
来
唤
醒
。
当
前
线
程
必
须
持
有
该
对
象
的
锁
,
调
用
w
a
i
t
后
即
释
放
锁
。
当
线
程
被
唤
醒
时
,
需
W
a
i
t
/
N
o
t
i
f
y
2
要
重
新
取
得
锁
并
继
续
执
行
。
然
而
,
线
程
被
唤
醒
有
可
能
是
因
为
虚
假
唤
醒
(
)
导
致
,
所
以
通
常
都
需
要
将
w
a
i
t
检
测
的
逻
辑
包
括
在
一
个
中
:
s
y
n
c
h
r
o
n
i
z
e
d
(
o
b
j
)
{
w
h
i
l
e
(
<
c
o
n
d
i
t
i
o
n
d
o
e
s
n
o
t
h
o
l
d
>
)
o
b
j
.
w
a
i
t
(
)
;
/
/
P
e
r
f
o
r
m
a
c
t
i
o
n
a
p
p
r
o
p
r
i
a
t
e
t
o
c
o
n
d
i
t
i
o
n
}
所
谓
虚
假
唤
醒
就
是
说
,
本
来
不
该
唤
醒
的
时
候
唤
醒
了
。
究
其
原
因
是
在
操
作
系
统
层
面
就
性
能
和
正
确
性
做
出
了
权
衡
,
放
弃
了
正
确
性
而
选
择
让
程
序
自
己
去
处
理
。
N
o
t
i
f
y
调
用
n
o
t
i
f
y
将
唤
醒
一
个
正
在
等
待
持
有
该
对
象
锁
的
线
程
,
如
果
有
多
个
对
象
在
等
待
的
话
,
将
会
随
机
唤
醒
其
中
的
一
个
。
被
唤
醒
的
线
程
必
须
等
到
当
前
线
程
释
放
锁
之
后
,
才
能
开
始
执
行
;
也
就
是
说
n
o
t
i
f
y
执
行
完
之
后
,
并
不
会
立
即
释
放
锁
,
而
是
需
要
等
到
同
步
块
执
行
完
。
如
果
调
用
n
o
t
i
f
y
A
l
l
的
话
,
所
有
等
待
的
线
程
将
被
唤
醒
,
但
同
一
时
间
有
且
仅
有
一
个
线
程
能
取
到
锁
并
继
续
执
行
。
I
n
t
e
r
r
u
p
t
i
o
n
当
调
用
T
h
r
e
a
d
.
i
n
t
e
r
r
u
p
t
时
,
线
程
的
中
断
状
态
呗
设
置
为
。
如
果
该
线
程
在
某
个
对
象
的
中
,
则
将
会
被
从
等
待
队
列
中
移
除
,
并
在
取
得
锁
之
后
抛
出
I
n
t
e
r
r
u
p
t
e
d
E
x
c
e
p
t
i
o
n
。
实
际
上
,
如
果
线
程
正
在
执
行
的
是
一
些
底
层
的
函
数
例
如
T
h
r
e
a
d
.
s
l
e
e
p
(
)
T
h
r
e
a
d
.
j
o
i
n
(
)
或
者
O
b
j
e
c
t
.
w
a
i
t
(
)
的
时
候
,
那
么
线
程
将
抛
出
I
n
t
e
r
r
u
p
t
e
d
E
x
c
e
p
t
i
o
n
,
并
且
i
n
t
e
r
r
u
p
t
e
d
状
态
会
被
清
除
;
否
则
只
会
将
i
n
t
e
r
r
u
p
t
e
d
状
态
设
置
为
t
r
u
e
。
如
果
一
个
处
于
等
待
队
列
中
的
线
程
同
时
收
到
中
断
和
通
知
,
那
么
可
能
的
行
为
是
:
先
收
到
通
知
,
正
常
唤
醒
。
这
时
候
,
T
h
r
e
a
d
.
i
n
t
e
r
r
u
p
t
e
d
将
为
t
r
u
e
,
抛
出
I
n
t
e
r
r
u
p
t
e
d
E
x
c
e
p
t
i
o
n
并
退
出
同
样
,
如
果
有
多
个
线
程
处
于
对
象
的
等
待
队
列
中
,
然
后
另
一
个
线
程
执
行
m
.
n
o
t
i
f
y
,
那
么
可
能
:
至
少
有
一
个
线
程
正
常
退
出
所
有
处
于
等
待
队
列
中
的
线
程
抛
出
I
n
t
e
r
r
u
p
t
e
d
E
x
c
e
p
t
i
o
n
而
退
出
需
要
注
意
的
是
,
当
一
个
线
程
中
断
了
另
一
个
线
程
的
时
候
,
被
中
断
的
线
程
并
不
是
需
要
立
即
停
止
执
行
,
程
序
可
以
选
择
在
停
止
之
前
做
一
些
清
理
工
作
之
类
的
。
通
常
如
果
捕
获
了
I
n
t
e
r
r
u
p
t
e
d
E
x
c
e
p
t
i
o
n
只
需
要
重
新
抛
出
即
可
,
有
些
时
候
不
能
重
新
抛
出
的
时
候
,
需
要
将
当
前
线
程
标
记
为
i
n
t
e
r
r
u
p
t
e
d
使
得
上
层
堆
栈
的
程
序
可
以
选
择
处
理
,
C
o
n
t
e
x
t
s
w
i
t
c
h
i
n
g
3
t
r
y
{
w
h
i
l
e
(
t
r
u
e
)
{
T
a
s
k
t
a
s
k
=
q
u
e
u
e
.
t
a
k
e
(
1
0
,
T
i
m
e
U
n
i
t
.
S
E
C
O
N
D
S
)
;
t
a
s
k
.
e
x
e
c
u
t
e
(
)
;
}
}
c
a
t
c
h
(
I
n
t
e
r
r
u
p
t
e
d
E
x
c
e
p
t
i
o
n
e
)
{
T
h
r
e
a
d
.
c
u
r
r
e
n
t
T
h
r
e
a
d
(
)
.
i
n
t
e
r
r
u
p
t
(
)
;
}
线
程
的
生
命
周
期
每
一
个
线
程
有
一
个
生
命
周
期
,
包
含
多
个
状
态
:
线
程
创
建
还
未
开
始
执
行
,
线
程
创
建
完
之
后
即
为
此
状
态
在
中
正
在
执
行
的
状
态
。
当
线
程
之
后
,
即
变
为
状
态
线
程
等
待
获
取
锁
而
被
阻
塞
线
程
等
待
其
他
线
程
有
超
时
的
等
待
线
程
已
被
退
出
S
l
e
e
p
/
Y
i
e
l
d
当
调
用
线
程
的
s
l
e
e
p
方
法
将
导
致
线
程
暂
时
停
止
执
行
,
值
得
注
意
的
是
并
不
会
释
放
锁
。
而
当
线
程
的
y
i
e
l
d
方
法
被
调
用
时
,
意
味
着
通
知
当
前
线
程
可
以
暂
缓
执
行
的
,
实
际
很
少
使
用
。
C
o
n
t
e
x
t
s
w
i
t
c
h
i
n
g
在
多
线
程
中
,
会
为
每
个
线
程
分
配
时
间
片
区
执
行
,
即
执
行
当
前
线
程
的
一
部
分
操
作
之
后
,
操
作
系
统
需
要
从
当
前
线
程
切
换
到
其
他
线
程
中
去
。
通
常
在
下
列
的
情
况
下
会
出
现
多
任
务
处
理
(
即
多
个
线
程
正
常
执
行
)
中
断
,
那
么
在
这
个
切
换
的
过
程
中
,
会
发
生
一
些
什
么
事
情
呢
?
参
考
:
管
程
C
o
n
t
e
x
t
s
w
i
t
c
h
i
n
g
4
HTML view coming soon.
Download PDF
for the full formatted version.