Java 学习笔记之 异常法停止线程】的更多相关文章

异常法停止线程: public class RealInterruptThread extends Thread { @Override public void run() { try { for (int i = 0; i < 5000000; i++) { if (Thread.interrupted()) { System.out.println("Thread is interrupted status, I need exit."); throw new Interru…
异常不同于错误,它是程序运行时产生的未知问题. 如果把程序比喻成一辆汽车,那么汽车开着开着突然前面出现了一个大石头挡住了路,这就叫异常. 那么出现了这个异常我们需要去处理,比如打电话给公路管理局,让它们搬走石头. 如果是汽车的发动机坏了,这叫错误. 即使程序本身没有问题,也会因为各种因素产生异常. java秉承面向对象的思想,将异常也以类和对象的形式存在. 一.异常类的结构 异常和错误都继承于Throwable, 在Exception和Error下面还有许多具体的子类,这个可以自行查阅文档. 这…
package cn.temptation; public class Sample01 { public static void main(String[] args) { /* * 异常:Java程序在运行过程中出现的错误 * * 类 Throwable:Java 语言中所有错误或异常的超类. * 只有当对象是此类(或其子类之一)的实例时,才能通过 Java 虚拟机或者 Java throw 语句抛出. * 类似地,只有此类或其子类之一才可以是 catch 子句中的参数类型. * * 类 E…
package cn.xiaocangtian.Exception; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; public class TestException3 { public static void main(String[] args) { String str = new TestException3().openFile();…
实例变量非线程安全: 如果多个线程共同访问1个对象中的实例变量,则可能出现“非线程安全”问题. public class UnSafeHasSelfPrivateNum { private int num = 0; public void addI(String username) { try { if (username.equals("a")){ num = 100; System.out.println("a set over!"); Thread.sleep…
实例变量与线程安全: 不共享数据: public class NoSharedThread extends Thread { private int count = 5; public NoSharedThread(String name){ super(); this.setName(name); } @Override public void run() { super.run(); while (count > 0){ count--; System.out.println("Thr…
创建线程 创建线程的方式: 继承java.lang.Thread 实现java.lang.Runnable接口 所有的线程对象都是Thead及其子类的实例 每个线程完成一定的任务,其实就是一段顺序执行的代码 继承java.lang.Thread创建线程 public class Test1 { public static void main(String[] args){ System.out.println("现在是主线程: "+Thread.currentThread()); //…
本文地址:http://www.cnblogs.com/archimedes/p/java-study-note15.html,转载请注明源地址. 线程的生命周期 1.线程的生命周期 线程从产生到消亡的过程 一个线程在任何时刻都处于某种线程状态(thread state) 线程生命周期状态图 诞生状态 线程刚刚被创建 就绪状态 线程的 start 方法已被执行 线程已准备好运行 运行状态 处理机分配给了线程,线程正在运行 阻塞状态(Blocked) 在线程发出输入/输出请求且必须等待其返回 遇到…
本文地址:http://www.cnblogs.com/archimedes/p/java-study-note14.html,转载请注明源地址. 多线程编程基础 多进程 一个独立程序的每一次运行称为一个进程,例如:用字处理软件编辑文稿时,同时打开mp3播放程序听音乐,这两个独立的程序在同时运行,称为两个进程 进程要占用相当一部分处理器时间和内存资源 进程具有独立的内存空间 通信很不方便,编程模型比较复杂 多线程 一个程序中多段代码同时并发执行,称为多线程,线程比进程开销小,协作和数据交换容易…
JAVA学习笔记—review基本知识[反射与异常] 1.异常: 1.1异常的分类: Java会将所有的异常封装成对象,其根本父类为Throwable. Throwable有两个子类:Error 和Exception. 1.1.1 Error:一个Error对象表示一个程序错误,指的是底层的低级的不可恢复的严重错误 遇到Error,程序一定会退出,因为已经失去了运行所必须的物理环境. 对于Error我们无法进行处理,因为我们是通过程序来应对错误的,可是程序已经退出了. 1.1.2 Excepti…