1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
public
class
WorkerTerminalThread
extends
Thread {
// 已经送出终止请求为true,初始化的时候为false
//由于该字段可能会被多个线程访问修改,为了保护就使用这个
private
volatile
boolean
shutdownRequested =
false
;
// 终止请求
public
void
shutdownRequest() {
shutdownRequested =
true
;
interrupt();
}
public
boolean
isShutdownRequest() {
return
shutdownRequested;
}
// 具体动作
public
final
void
run() {
try
{
while
(!shutdownRequested)
doWork();
}
catch
(InterruptedException e) {
}
// 终止处理中的工作,不会进行平常操作,但是会进行终止处理
finally
{
doShutdown();
}
}
// 具体工作操作
private
void
doWork()
throws
InterruptedException {
}
// 终止后进行善后处理
private
void
doShutdown()
{
}
}
|
Java多线程设计模式(6)两阶段终止模式
最新推荐文章于 2023-06-05 12:58:16 发布