• / 25
  • 下载费用:10 金币  

第9章 多线程.ppt

关 键 词:
第9章 多线程.ppt
资源描述:
第9章 多线程,第9章 多线程,本章主要讲述如下内容:  多线程的概念;  线程的生命周期;  多线程编程中的常量和方法;  线程调度方法;  资源冲突与协调;  线程之间的通信。,Java中多线程的基本概念,在多线程模型中,多个线程共存于同一块内存中,且共享资源。每个线程分配有限的时间片来处理任务。由于CPU在各个线程之间的切换速度非常快,用户感觉不到,从而认为并行运行。,多线程的特点,多个线程在运行时,系统自动在线程之间进行切换;由于多个线程共存于同一块内存,线程之间的通信非常容易;Java将线程视为一个对象。线程要么是Thread类的对象,要么是接口Runnable的对象。,多线程的特点(续),当多个线程并行执行时,具有较高优先级的线程将获得较多的CPU时间片;优先级是从0到10的整数,并且它仅表示线程之间的相对关系;多个线程共享一组资源,有可能在运行时产生冲突。必须采用synchronized关键字协调资源,实现线程同步。,多线程编程中常用的常量和方法,线程类Thread定义在java.lang包中;Thread类包含的常量有: (1) public static final int MAX_PRIORITY最大优先级,值是10。 (2) public static final int MIN_PRIORITY最小优先级,值是1。 (3) public static final int NORM_PRIORITY缺省优先级,值是5。,多线程编程中常用的常量和方法(续),常用方法: currentThread( ) 返回当前运行的线程对象,是一个静态的方法。 sleep(int n) 使当前运行的线程睡n个毫秒,然后继续执行,也是静态方法。 yield( ) 使当前运行的线程放弃执行,切换到其它线程,是一个静态方法。 isAlive( ) 判断线程是否处于执行的状态,返回值true表示处于运行状态,false表示已停止。 start( ) 使调用该方法的线程开始执行。 run( ) 该方法由start( )方法自动调用。,多线程编程中常用的常量和方法(续),常用方法: stop( ) 使线程停止执行,并退出可执行状态。 suspend( ) 使线程暂停执行,不退出可执行态。 resume( ) 将暂停的线程继续执行。 setName(String s) 赋予线程一个名字。 getName( ) 获得调用线程的名字。 getPriority( ) 获得调用线程的优先级。 setPriority(int p) 设置线程的优先级。 join( ) 等待线程死亡,若中断了该线程,将抛出异常。,多线程编程中常用的常量和方法(续),注意1:在创建线程对象时,缺省的线程优先级是5,一般设置优先级4到6之间,不要设置为10,否则其它线程将执行不到。 注意2:Java的调度器能使高优先级的线程始终运行,一旦CPU有空闲,具有同等优先级的线程,以轮流的方式顺序使用时间片。,线程的生命周期,,线程的生命周期,例9-1:单线程 源程序 运行,创建多线程的方法,方法1:通过Thread类的子类实现多线程。方法2:定义一个实现Runnable接口的类实现多线程。,创建多线程的方法(续),方法1:通过创建Thread类的子类实现多线程,步骤如下 : (1) 定义Thread类的一个子类。 (2) 定义子类中的方法run( ),覆盖父类中的 方法run( )。 (3) 创建该子类的一个线程对象。 (4) 通过start( )方法启动线程。例9-2: 源程序 运行,创建多线程的方法(续),方法2:通过接口创建多线程,步骤如下: (1)定义一个实现Runnable接口的类。 (2)定义方法run( )。Runnable接口中有一个空的方法run( ),实现它的类必须覆盖此方法。 (3)创建该类的一个线程对象,并将该对象作参数,传递给Thread类的构造函数,从而生成Thread类的一个对象。 注意这一步! (4)通过start( )方法启动线程。例9-3: 源程序 运行,创建多线程的方法(续),例9-3中需要注意的2点: (1) mt1.join( )是等待线程死亡,对该方法必须捕捉异常,或通过throws关键字指明可能要发生的异常。 (2) 对一个线程不能调用start( )两次,否则会产生IllegalThreadStateException异常。,线程调度模型,线程调度程序挑选线程时,将选择处于就绪状态且优先级最高的线程。如果多个线程具有相同的优先级,它们将被轮流调度。例9-4:验证Java对多线程的调度方法。源程序 运行思考:在run()方法中,通过线程睡眠2个毫秒,模拟程序的执行。如果不睡眠,你知道输出什么结果吗?为什么?,资
展开阅读全文
  微传网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
0条评论

还可以输入200字符

暂无评论,赶快抢占沙发吧。

关于本文
本文标题:第9章 多线程.ppt
链接地址:https://www.weizhuannet.com/p-10036269.html
微传网是一个办公文档、学习资料下载的在线文档分享平台!

微传网博客

网站资源均来自网络,如有侵权,请联系客服删除!

 网站客服QQ:80879498  会员QQ群:727456886

copyright@ 2018-2028 微传网络工作室版权所有

     经营许可证编号:冀ICP备18006529号-1 ,公安局备案号:13028102000124

收起
展开