3.2.3join()方法和interrupt()方法同时使用出现异常
来源:互联网 发布:董易奇八字软件 编辑:程序博客网 时间:2024/06/05 16:01
package demo;/** * Created by sunyifeng on 17/10/17. */public class ThreadA extends Thread { @Override public void run() { super.run(); for (int i = 0; i < Integer.MAX_VALUE; i++) { String str = new String(); Math.random(); // TODO: 这句不能注释 } }}
package demo;/** * Created by sunyifeng on 17/10/17. */public class ThreadB extends Thread { @Override public void run() { try { super.run(); ThreadA threadA = new ThreadA(); threadA.start(); threadA.join(); System.out.println("线程B,该我执行了"); } catch (InterruptedException e) { System.out.println("线程B,进入异常了"); e.printStackTrace(); } }}
package demo;/** * Created by sunyifeng on 17/10/17. */public class ThreadC extends Thread { private ThreadB threadB; public ThreadC(ThreadB threadB) { super(); this.threadB = threadB; } @Override public void run() { super.run(); threadB.interrupt(); }}
package demo;/** * Created by sunyifeng on 17/10/17. */public class Run { public static void main(String[] args) { try { ThreadB threadB = new ThreadB(); threadB.start(); Thread.sleep(500); ThreadC threadC = new ThreadC(threadB); threadC.start(); } catch (InterruptedException e) { e.printStackTrace(); } }}
运行结果:
线程B,进入异常了
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at java.lang.Thread.join(Thread.java:1245)
at java.lang.Thread.join(Thread.java:1319)
at demo.ThreadB.run(ThreadB.java:13)
程序分析:
1、线程B的join方法与interrupt方法如果彼此相遇,则会出现异常;
2、线程B出现异常自动终止,线程A不会停止直到执行完才停止。
阅读全文
0 0
- 3.2.3join()方法和interrupt()方法同时使用出现异常
- Java多线程中,Join和Interrupt()方法的使用
- Java 多线程 join和interrupt 方法
- Java 多线程 join和interrupt 方法 (r)
- Java多线程的join和interrupt方法
- 关闭超时的java线程 --利用join和interrupt方法
- 多线程:interrupt()方法 守护线程 join()方法 及优先级
- Thread interrupt() 方法的使用
- 使用interrupt方法中断线程
- MemcachedClient 使用incr()和decr()方法出现异常
- Interrupt()方法
- interrupt()方法
- wait notify interrupt join setDaemon 方法的用法
- Thread方法解释(join,sleep,yield,interrupt)
- catch和throw同时使用---通过多个方法协作处理同一个异常
- python join 和 split方法的使用
- 使用interrupt()方法和isInterrupted()方法更好的实现主线程和子线程的配合
- join方法的使用
- Hello,CSDN
- RxJava的flatMap使用记录
- Android SQLite数据库学习笔记(1)
- AndroidStudio创建工程,添加svn忽略文件以及关联上SVN
- hibernate
- 3.2.3join()方法和interrupt()方法同时使用出现异常
- checkbox与后台交互技巧
- 1、Python 日期时间格式化输出
- SGU223(状压DP入门)
- C++保存数据到本地文件
- springboot 上传下载
- unity学习如何做服务器与客户端
- Subversion代码提交中的org.apache.subversion.javahl.ClientException: svn: E200007: Commit failed异常解决
- anaconda 安装graphviz