- 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网络编程的基本思想 掌握基于Socket的低层Java网络编程与基于UDP的Java网络编程,以及基于无连接的数据报通信编程 理解JDBC的基本思想 掌握数据源的建立和数据库的访问 多线程程序设计 Java是支持多线程的语言之一。 Java的多线程可以弥补有些程序设计语言只能运行单一程序块,无法同时运行程序内不同块的缺憾。 Java可以让不同的程序块同时运行,可以达到处理多任务的目的。 在单线程的程序设计语言里,运行的程序总是必须顺着程序的流程走,遇到if-else语句就进行判断,遇到for、while等循环就多绕几个圈,最后程序还是按着一定的顺序走,且一次只能运行一个程序块。 多线程的概念 Java语言的多线程(multi-thread)改变了这个规则。所谓的线程(thread)是指程序的运行流程,多线程的技术使单个程序内部也可以在同一时刻执行多个代码段,完成不同的任务,这种机制称为多线程。 Java语言利用多线程实现了一个异步的执行环境。例如,在一个网络应用程序里,可以在后台运行一个下载网络数据的线程,在前台则运行一个线程来显示当前下载的进度,以及一个用于处理用户输入数据的线程。多线程使程序运行的效率得到了提高,也克服了单线程程序语言所无法设计的问题。 Java多线程机制是通过Java类包java.lang中的类Thread实现的,Thread类封装了对线程控制所必需的方法。线程的实例化对象定义了很多方法用来控制一个线程的行为. 单线程的实现示例 单线程的实现示例(续) 运行结果: B:早饭 B:上班 B:下班 S:备课 S:上课 S:布置作业 S:下课 单线程的实现示例(续) 程序分析: 本例是单线程的范例,在类BT中定义了run()方法,用循环输出4个连续的字符串。try块中sleep()方法只是简单地告诉线程休息多少毫秒,其参数为休息时间。当这个时间过去后,线程即可继续执行。当某个线程睡眠时,sleep()并不占用系统资源,其他某一线程可继续工作。main()方法中分别创建了s1与s2对象之后,各自调用run()方法,分别输出4行信息 多线程的实现 从上例可看出,要运行s2.run()方法,一定要等到s1.run()运行完毕才行,这便是单线程的限制。在Java里,是否可以同时运行s1.run()、s2.run()方法使得上述结果交叉输出呢?当然可以,就是在Java程序中激活多个线程。 如果在类里激活线程,必须满足下面两个条件: 1.此类必须是扩展自Thread类,使自己成为它的子类 2.线程的处理必须编写在run()方法内。 Thread类存放在java.lang类库中,因此不需要加载。此外,run()方法是定义在Thread类中的一个方法,因此把线程的程序代码编写在run()方法内,事实上就是第6章所讲的覆盖操作。 多线程的实现示例 多线程的实现示例(续) 运行结果: 第一次运行 第二次运行 第三次运行 B:起床 B:起床 B:起床 S:备课 S:备课 S:备课 S:上课 B:早饭 S:上课 S:布置作 S:上课 B:早饭 B:早饭 B:上班 B:上班 S:下课 S:布置作业 B:下班 B:上班 B:下班 S:布置作业 S:下班 S:下课 S:下课 多线程的实现示例(续) 程序分析: 程序中的main()方法中构造了两个ST类的线程,一个称为“B”线程,另一个称为“S”线程,并调用了start()方法来启动这两个线程。可以看到,在3次输出结果中两个线程的运行是交叉在一起的,没有确定的顺序可寻,这是因为这两个线程同时运行,并且同时显示输出,且这两个线程的输出次序是随机的。 使用接口实现多线程 前面介绍了如何用类Thread的方式来创建线程。但是如果类本身已经继承了某个父类,现在又要继承Thread类来创建线程,就违背了Java不支持多继承的原则,解决这个问题的方法是使用接口。多线程中就是实现接口Runnable。Runnable接口里声明了抽象的run()?方法,因此只要在类里实现run()方法,也就是把处理线程的程序代码放在run()里就可以创建线程了。 多线程的实现示例2 例12.3 创建一个程序实现当前时间显示,要求每2秒显示1次,显示20次后程序退出。 分析: 在Java的java.util包中有一个Date类,可以通过实例化一个Date对象得到当前时间。要求每两秒显示一次时间,线程是完成这个任务最好的角色。通
您可能关注的文档
- 2014年度工作总结通知及模版.doc
- 2014年度劳务结算发放流程及表格.doc
- 2014年注册消防工程师项目知识.doc
- 2014注册消防工程师项目知识培训.pdf
- 2015年度盛典策划方案.doc
- 2015年度盛典策划方案-最终版.doc
- 2015年公司年会策划.doc
- Authorware实用教程(第2版) 仇芒仙 Authorware -123章.ppt
- Authorware实用教程(第2版) 仇芒仙 第5章-1.ppt
- Authorware实用教程(第2版) 仇芒仙 第6章-1.ppt
- Java面向对象程序设计 赵生慧 课件6.ppt
- Linux实验教程-费翔林-第1章 Linux安装和编译.pdf
- Linux实验教程-费翔林-第2章 进程与线程.pdf
- Linux实验教程-费翔林-第4章 System V的进程间通信.pdf
- Linux实验教程-费翔林-第5章 Shell程序设计.pdf
- Linux实验教程-费翔林-第7章 文件系统的设计与实现.pdf
- Linux实验教程-费翔林-第6章 存储管理.pdf
- Linux实验教程-费翔林-第8章 时钟与定时器.pdf
- Linux实验教程-费翔林-第9章 网络通信编程.pdf
- Linux实验教程-费翔林-第11章 综合实验.pdf
最近下载
- EN_IEC_60034-14-2018 旋转电机 - 第 14 部分:轴高 56 mm 及以上的某些机器的机械振动 - 振动严重程度的测量、评估和限制 (IEC 60034-14-2018).pdf VIP
- 提高PICC导管维护规范率..pptx
- Module 1 Wonders of the world Unit 1课件-外研九上(含音频+视频).pptx VIP
- 职业病诊断医师资格考试试题带答案.docx VIP
- 大学试题《工业通风与除尘》考试题库无答案.doc VIP
- 本科十四五教材针灸治疗学呃逆PPT课件.pptx VIP
- 中药材产业发展情况调研报告-中药材产业发展存在的问题及对策建议.pdf VIP
- T/CASEI62001—2019 起重机械 安全状况评估.pdf VIP
- ISO9001:2015质量管理体系标准培训.pptx VIP
- (2025秋新版)教科版科学三年级上册全册PPT课件.pptx
文档评论(0)