java 学习笔记

类别:Java 点击:0 评论:0 推荐:

JAVA的多线程

 

一、线程基本概念

将1个程序转换成多个独立运行的子任务。每个子任务都叫做一个线程。

“进程”是指一种“自包容”的运行程序。有自己的地址空间。一个进程可以容纳多个同时执行的线程。

  事实上,多线程最主要的一个用途就构建1个“反应灵敏”的用户界面。

 

二、线程的使用

1、  创建一个线程

         最简单的方法就是从Thread类继承这个类,包含了创建和运行线程所需的一切东西。

Thread最重要的是run方法,继承类必须对之进行重载,使其按自己的意愿来做事。

   

2、线程的几个重要方法

(1)    run方法

用start方法激活线程时,线程要运行的方法

 

(2)    start方法

            当线程创建后,处于待命状态,只有调用start方法才能激活,使之运行

 

(3)    setpriority方法

设置线程的优先级,例:Thead.setpriority(5).

优先级高的线程先执行。

 

Java Error Handing with Exceptions

一、例外机制

1、  强制捕获错误

2、  便于将业务逻辑代码与例外控制代码分开。

二、基本的违例

1、  要区分“例外条件”(exceptional condition)与“普通问题”

1)      例外条件:没有足够的上下文来处理出现的问题。

2)      普通问题:有足够上下文来处理问题

2、  仍出一个例外时,Java将要做的事:

1)      在堆中,用new创建一个例外对象(exception object)

2)      程序停止正常的运行,并由例外控制器(exception handler)来解决发生的问题。

3、  Throwable对象

针对不同的错误类型,要求throw 不同的例外处理对象。

错误的信息在throwable 对象及throw 例外对象的对象中保存。

 

 三、例外的捕获

1、  假如一个方法throw一个例外,它必须假定这个例外将被捕获(catch).

2、  警戒区域(guarded region)

可能出现例外的code region

try

{

   guarded region

 

}

你可以将要检查错误的代码置于try块中,并在随后捕获可能出现的错误。

   

3、例外控制器(Exception Handlers)

try

{

      //code that  might generate exceptions

 

}

catch(Type id1)

{

     //Handle exceptions of Type1

 

}

catch (Type id2)

{

     //Hand exceptions of Type2

 

}

//etc

 

说明:有时catch clause 的参数在程序中并没有使用,但参数仍必须给出。

 

    四、例外标准(规范)

1、  如果类的一个方法中,可能会“掷”出异常,则在类方法的定义时,要说明违例类型。

           void f() throws tooBig,tooSmall,divZero

{

 

 

}

 

2、  如果一个方法声明时带了“throws”声明,则调用者必须对异常进行捕获,这是Java编译器所强制的。

 

3、即使,在方法中你实际没有“掷出”异常,你仍可以用”throws”关键字。

 

  五、异常处理的几点说明

1、可以在一个abstract class类的方法声明中使用throws关键字

2、如果方法声明中带throws参数,调用者必须对之捕获。

  3、catch  子句  :catch (异常类 异常类变量)

  4、当重载一个方法时,你只能throw基础类中定义的异常类型。

      这种限制,不适合类的构造函数。

  5、违例匹配

(1)    掷出一个异常后,异常控制系统会按当初编写的顺序搜索最近的控制器

(2)    一个衍生类对象可与基础类的一个控制器相匹配

(3)    如果catch子句的基础类在前,会编译报错。

本文地址:http://com.8s8s.com/it/it13125.htm