- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
java第十一章-1
回顾 编程规范 程序调试 文档注释 回顾— Java的编程规范 指导方针是要求确实所需要的,例如增加可读性 没有标准可以做到完美无缺,也没有标准可以做到适用于所有的应用 指导方针一般是为了: 增加可读性、程序的可理解性,从而提高程序的可维护性以及程序代码质量 回顾—程序调试 第一种格式 assert 布尔表达式; 当表达式的值为false并且assert语句起作用时,引起一个断言错误 AssertionError 回顾— 程序调试 第二种格式 assert 布尔表达式 : 字符串; 当表达式的值为false并且assert语句起作用时,引起一个断言错误,同时会显示给定字符串的内容。 教学内容和目标 多线程程序设计方法 线程生命周期 教学重难点 重点 掌握多线程程序设计的基本方法 难点 多线程程序运行周期 11.1 线程 一个线程就是一段连续执行的程序 连续执行的含义: 程序从起始点开始运行 每次执行一条语句 语句可能有条件判断、循环、函数,但每次只有一条语句在执行 程序最后在终点退出 11.1.1 线程与程序 线程与可执行程序的区别 线程不是一个完整的可执行程序,它不能自动开始 线程在程序中运行,由程序来启动一个线程 我们前面学到的程序,其核心都是一个线程 程序的作用是给线程加上一段创建并启动线程的代码 11.1.2 多线程 多线程的概念 如果一个程序中同时启动了两个或更多个线程,则称为多线程程序 有些应用程序需要做到“一心二用”,一个在前台随时听候用户调遣,另一个在后台完成用户交待的工作 利用多线程程序就可以做到这一点,只需要让程序启动两个线程,一个在前台接受用户指令,另一个在后台进行具体工作 11.1.2 多线程 11.2 多线程程序设计 创建线程的方法 方法1:产生一个继承Thread类的线程类 方法2:让一个普通类实现Runnable接口 两种方法的比较: 方法2比方法1要复杂一些 如果你的类需要继承其他类(比如图形界面类JFrame,小程序类Applet),那么这个类就不能再继承线程类 此时就必须通过实现Runnable接口来实现 11.2.1 多线程程序的设计-1 (1) 建立自己的线程类 (2) 在主程序中创建线程对象 (3) 启动线程 (4) 结束线程 11.2.1.1 建立线程类 11.2.1.2 创建线程对象 如下面的例子: RabbitThread rabbit = new RabbitThread(兔子); TortoiseThread tortoise = new TortoiseThread(乌龟); 构造函数中的参数表示线程名称 线程的名称可以随便给出 在本例中,给RabbitThread线程起名叫“兔子”,TortoiseThread线程起名叫“乌龟” 11.2.1.3 启动、结束线程 (3) 启动线程 通过调用线程对象的start函数实现 下面的代码启动了两个线程 rabbit.start(); tortoise.start(); (4) 结束线程 当线程类的run函数执行完后,线程会自动结束,无须人工干预 11.2.2 多线程程序的设计-2 实现Runnable接口的具体做法 (1)让普通的类实现Runnable接口 class RabbitThread implements Runnable { ... } (2) 实现Runnable接口的run函数 public void run() { ... } (3) 创建一个普通类的对象 RabbitThread rabbit = new RabbitThread(); 11.2.2 多线程程序的设计-2 实现Runnable接口的具体做法 (4)创建一个线程(Thread)对象,在线程对象构造函数的参数中需要给出普通类的对象,以及线程名称 Thread thread1 = new Thread(rabbit, 兔子); (5)调用线程对象的start函数,线程对象会启动线程,并且在该线程中运行普通类的run函数 thread1.start(); 11.2.2 多线程程序的设计-2 启动、暂停、停止线程 线程的启动:通过线程类(或者其子类)的start函数来实现: thread1.start(); 启动线程之后,会自动在线程中运行run函数,run函数相当于普通程序的main函数 线程的暂停:包括休眠与等待,二者的不同点在于休眠的线程会在设定的时间后自动醒来,而等待的线程必须被其它线程叫醒 11.2.2 多线程程序的设计-2 启动、暂停、停止线程 线程的休眠:利用Thead类的sleep静态函数休眠,函数的参数为休眠时间(毫秒) Thead.sleep(1500); 线程的等待:调用wait函
文档评论(0)