第5章 多线程与异常处理.ppt

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 多线程与异常处理

第5章 多线程与异常处理 主要内容 5.1 异常处理 5.2 多线程 5.1 异常处理 异常(Exception)指程序运行过程中出现的非正常现象,例如用户输入错误、需要处理的文件不存在、在网络上传输数据但网络没有连接等。把这种对异常情况进行处理的技术称为异常处理。   在Android系统中应用Java语言的异常处理机制进行异常处理。 1、异常处理机制 在Android系统的异常处理中,引入了一些用来描述和处理异常的Java类,每个异常类反映一类运行错误,在类的定义中包含了该类异常的信息和对异常进行处理的方法。当程序运行的过程中发生某个异常现象时,系统就产生一个与之相对应的异常类对象,并交由系统中的相应机制进行处理,以避免系统崩溃或其他对系统有害的结果发生,保证了程序运行的安全性。这就是Android系统的异常处理机制。 2、异常类的定义 在Android系统中,把异常分为错误(Error)与异常(Exception)两大类。 错误(Error)通常是指程序本身存在非法的情形,这些情形常常是因为代码存在着问题而引起的。 异常情况(Exception)则表示另外一种“非同寻常”的错误。这种错误通常是不可预测的。 3、系统定义的运行异常 【例5-1】异常处理示例:当除数为0时,抛出异常。 public class MainActivity extends Activity { TextView txt1; ProgressDialog log; Toast toast; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); txt1= new TextView(this); int x=15,y=0,z; String c= ; txt1.setText(运行结果 ); try{ z = x/y; c = String.valueOf(z); } catch(Exception e) { c = x=15, y=0, z=x/y 错误, 除数不能为0!;} toast=Toast.makeText(this, c, Toast.LENGTH_LONG); toast.setText(c); toast.show(); setContentView(txt1); } } 5.2 多线程 5.2.1 线程与多线程 1、线程 线程是指进程中单一顺序的执行流。 设某程序的地址空间在0x0000~0xffff,其线程A运行在0x2000~0x4000,线程B运行在0x4001~0x6000,线程C运行在0x6001~0x8000,多个线程共同构成一个大的进程。如图所示。 2、多线程 多线程程序是指一个程序中包含有多个执行流。 5.2.2 线程的生命周期 每个线程都要经历创建、就绪、运行、阻塞和死亡等5个状态,线程从产生到消失的状态变化过程称为生命周期。 1、创建状态 当我们通过new命令创建了一个线程对象,则该线程对象就处于创建状态。 如下面语句所示: Thread thread1 = new Thread(); 2、就绪状态 处于创建状态的线程对象通过start()方法进入就绪状态, 如下面语句所示: Thread thread1 = new Thread(); Thread1.start(); start()方法同时调用了线程体,也就是run()方法,表示线程对象正等待CPU资源,随时可被调用执行。  3.运行状态 若线程处于正在运行的状态,表示线程已经拥有了对处理器的控制权,其代码目前正在运行,除非运行过程中控制权被另一优先级更高的线程抢占,否则这一线程将一直持续到运行完毕。 4、阻塞状态 如果一个线程处于阻塞状态,那么该线程则无法进入就绪队列。处于阻塞状态的线程通常必须由某些事件唤醒。至于是何种事件,则取决于阻塞发生的原因。例如:处于休眠中的线程必须被阻塞固定的一段时间才能被唤醒;被挂起或处于消息等待状态的线程则必须由一外来事件唤醒。 5、死亡状态 死亡状态(或终止状态),表示线程已退出运行状态,并且不再进入就绪队列。 其原因可能是线程已执行完毕(正常结束),也可能是该线程被另一线程强行中断,即线程自然撤消或被停止。自然撤消是从线程的run()方法正常退出。即,当run()方法结束后

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档