From ea8cb233bc5ba7a992ce8fd9bbecc7f7f1fa4ee3 Mon Sep 17 00:00:00 2001 From: binghe001 <1028386804@qq.com> Date: Tue, 20 Sep 2022 21:11:46 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E7=AC=AC12=E7=AB=A0=E7=9A=84?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mykit-concurrent-chapter12/pom.xml | 15 +++++++ .../chapter12/ThreadInterruptTask.java | 40 +++++++++++++++++++ .../chapter12/ThreadInterruptTest.java | 34 ++++++++++++++++ pom.xml | 1 + 4 files changed, 90 insertions(+) create mode 100644 mykit-concurrent-chapter12/pom.xml create mode 100644 mykit-concurrent-chapter12/src/main/java/io/binghe/concurrent/chapter12/ThreadInterruptTask.java create mode 100644 mykit-concurrent-chapter12/src/main/java/io/binghe/concurrent/chapter12/ThreadInterruptTest.java diff --git a/mykit-concurrent-chapter12/pom.xml b/mykit-concurrent-chapter12/pom.xml new file mode 100644 index 0000000..1ddf8c7 --- /dev/null +++ b/mykit-concurrent-chapter12/pom.xml @@ -0,0 +1,15 @@ + + + + mykit-concurrent-jdk + io.binghe.concurrent + 1.0.0-SNAPSHOT + + 4.0.0 + + mykit-concurrent-chapter12 + + + \ No newline at end of file diff --git a/mykit-concurrent-chapter12/src/main/java/io/binghe/concurrent/chapter12/ThreadInterruptTask.java b/mykit-concurrent-chapter12/src/main/java/io/binghe/concurrent/chapter12/ThreadInterruptTask.java new file mode 100644 index 0000000..9405e84 --- /dev/null +++ b/mykit-concurrent-chapter12/src/main/java/io/binghe/concurrent/chapter12/ThreadInterruptTask.java @@ -0,0 +1,40 @@ +/** + * Copyright 2020-9999 the original author or authors. + *

+ * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.apache.org/licenses/LICENSE-2.0 + *

+ * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.binghe.concurrent.chapter12; + +/** + * @author binghe(公众号:冰河技术) + * @version 1.0.0 + * @description 线程中断案例 + */ +public class ThreadInterruptTask implements Runnable { + @Override + public void run() { + Thread currentThread = Thread.currentThread(); + while (true){ + if (currentThread.isInterrupted()){ + break; + } + try { + Thread.sleep(100); + } catch (InterruptedException e) { + System.out.println("触发InterruptedException异常"); + currentThread.interrupt(); + } + } + System.out.println("线程被成功中断"); + } +} diff --git a/mykit-concurrent-chapter12/src/main/java/io/binghe/concurrent/chapter12/ThreadInterruptTest.java b/mykit-concurrent-chapter12/src/main/java/io/binghe/concurrent/chapter12/ThreadInterruptTest.java new file mode 100644 index 0000000..0382dc0 --- /dev/null +++ b/mykit-concurrent-chapter12/src/main/java/io/binghe/concurrent/chapter12/ThreadInterruptTest.java @@ -0,0 +1,34 @@ +/** + * Copyright 2020-9999 the original author or authors. + *

+ * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.apache.org/licenses/LICENSE-2.0 + *

+ * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.binghe.concurrent.chapter12; + +/** + * @author binghe(公众号:冰河技术) + * @version 1.0.0 + * @description 线程中断案例 + */ +public class ThreadInterruptTest { + public static void main(String[] args){ + Thread thread = new Thread(new ThreadInterruptTask()); + thread.start(); + try { + Thread.sleep(200); + } catch (InterruptedException e) { + e.printStackTrace(); + } + thread.interrupt(); + } +} diff --git a/pom.xml b/pom.xml index a0cc8f2..28f936e 100644 --- a/pom.xml +++ b/pom.xml @@ -65,5 +65,6 @@ mykit-concurrent-chapter09 mykit-concurrent-chapter10 mykit-concurrent-chapter11 + mykit-concurrent-chapter12 \ No newline at end of file -- GitLab