- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JJAAVVAA语语言言程程序序设设计计
第8章:多线程
—— 认识多线程
³ 66440022333322 王王联联根根
目标
³ 了解进程与线程的区别
³ 掌握Java线程的两种实现方式及其区别
³ 了解线程的操作状态
进程与线程
³ 进程是程序的一次动态执行过程,它经历了从代码加载、执行到执行完毕
的一个完整过程, 个过程也是进程本身从产生、发展到最终消亡的过程。
³ 多线程是实现并发机制的一种有效手段。进程和线程一样,都是实现并发
的一个基本单位。
Java中线程的实现
³ 在Java中要想实现多线程代码有两种手段:
² 一种是继承Threa 类
² 另一种就是实现Runnable接口
继承Thread类
³ Thread类是在java.lang包中定义的,一个类只要继承了Thread类,此类
就 为多线程操作类。在Thread子类之中,必须明确的覆写Thread类中
的run()方法,此方法为线程的主体。
³ 多线程的定义语法:
² class类名 extendsThread{ //继承Thread类
属性… ; //类中定义属性
方法… ; //类中定义方法
//覆写Thread类中的run()方法,此方法是线程的主体
publicvoidrun(){
线程主体;
}
}
继承Thread类实现多线程
启动线程
³ 如果要想正确的启动线程,是不能直接调用run()方法的,应该调用从
T read类中继承而来的start()方法,才可以启动线程。
² mt1.start(); //启动多线程
² mt2.start(); //启动多线程
start方法定义
从以上的代码中可以发现,在一个类中的start()方法调用时可能会
抛 “IllegalThreadStateException”的异常,一般在重复调用start()方法的
时候会抛 这个异常。而且实际上此处真正调用的是start0()方法,此方法
在声明处使用了native关键字声明,此关键字表示调用本机的操作系统函数,
因为多线程的实现需要依靠底层操作系统支持。
实现Runnable接口
³ 在Java中也可以通过实现Runnable接口的方式实现多线程,Runnable接
口中只定义 一个抽象方法:
² publicvoidrun() ;
³ 通过Runnable接口实现多线程:
² class类名称implementsRunnable{ //实现Runnable接口
属性… ; //类中定义属性
方法… ; //类中定义方法
publicvoidrun(){ //覆写Runnable接口里的run()方法
线程主体 ;
}
}
实现Runnable接口
启动Runnable实现的多线程
³ 以上的代码是通过实现Runnable接口实现的多线程,但是这样一来 会
有新的问题产生了,从之前的代码中可以清楚的知道,要想启动一个多线
程必须要使用start()方法完成,如果继承了Thread类,则可以直接从
Thread类中使用start()方法,但是现在实现的是Runnable接口,那么该如
何启动多线程呢?实际上此时,还是要依靠Thread类完成启动,在
Thread类中提供了以下
文档评论(0)