- 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 第七章 实现多个客户端同时在线 本章学习要点: 理解线程的含义; 7.1 需求分析 7.2 确定任务单: 7.3任务一: 实现客户端发送消息和接收消息的分离 7.4任务二: 实现服务器和多个客户端通信 服务端要做的事是要不停的监听并接收每个连接上来的客户端,并且为每个客户端开启一个单独的线程与之通信。 Java项目开发教程 掌握Java中实现多线程的方法; 理解线程的生命周期; 理解服务器端广播消息的方式; 了解集合类的使用; 任务一:实现客户端发送消息和接收消息的分离; 为了能够实现客户端之间互相通信,服务器必须能够同时接受多个客户端的连接,并且对于每个客户端发送至服务器的信息,服务器应该能将其转发给其它的所有客户端。 任务二:实现服务器和多个客户端通信; 1、识别客户端实现多线程的方法 一、确定步骤 启动线程 3 识别线程体,及线程体中需要运行的代码 2 识别客户端实现多线程的方法 1 二、分析步骤 Thread类 Thread类用来构造和访问多线程应用中各个线程。 语法: public class 类名 extends Thread 例子:使用Thread类创建并运行线程类 Public class MyThread extends Thread{ …… } 线程的操作有: 等待、中断或撤消等操作 语法: public class 类名 extends 某个类 implements Runnable 由于Java不支持多重继承机制,我们无法通过继承Thread类实现多线程的功能,因此我们只有通过实现Runnable接口的方法来达到多重继承的功能,继而实现多线程。 Runnable接口 例子: 使用Runnable接口创建并运行线程 public class MyThread implements Runnable{ …… } run()方法 run()方法指明了线程体需要运行的代码。无论是继承Thread类还是实现Runnable接口,Java都会要求实现run()方法,在run()中放入线程需要执行的代码段。 2、识别线程体,及线程体中需要运行的代码 例: public class MyThread implements Runnable{ …… public void run(){ //这里放置线程体需要执行的代码 } } 本例中,在客户端,我们需要专门利用一个线程来接收服务器端发过来的信息,所以在客户端的run()方法中应该循环调用客户端的readMessage()方法。 如: public void run() { //循环调用读取消息方法 while(true){ readMessage(); } } 3、启动线程 1)线程的生命周期 下图简要描述线程生命周期: New Thread(新建状态) 创建了一个线程实例: Thread myThread = new MyThread (); Runnable(可运行状态) 调用start()方法来启动线程。该方法负责分配线程运行必须的系统资源,调度线程的运行 ; 调用线程的run()方法,使线程进入可运行状态; 注意:启动线程应该调用start()方法而不是调用run()方法。 Not Runnable(不可运行状态) 语法: sleep(long t); 其中,long t指定了线程睡眠的毫秒数 续: Dead(死亡状态) 2)启动线程 start()方法 语法: new Thread(this).start(); 当线程执行完成run()方法中的代码退出run()方法后,线程就进入死亡状态。当然我们也可以通过编程的方法,让程序提前跳出run()方法来杀死线程。 续: 三、修改代码 修改后Client.java程序清单如下: package org.javaprogram.client; import java.awt.*; import java.awt
您可能关注的文档
最近下载
- 无损检测质量管理体系.ppt VIP
- 中职汽车维修实践教学在工匠精神培养中的研究课题报告教学研究课题报告.docx
- 铃木船外机四冲程DF150TG-DF150ZG-DF175TG-DF175ZG中文维修手册.pdf
- 吉林2025年长春市总工会公开招聘工会社会工作者107人笔试备考试题及答案解析.docx VIP
- 2025吉林长春市总工会公招聘工会社会工作者(107人)招聘笔试模拟试题及答案解析.docx VIP
- 2025吉林长春市总工会公招聘工会社会工作者(107人)招聘笔试备考试题及答案解析.docx VIP
- QC成果提高金刚砂耐磨地坪施工质量合格率.docx VIP
- 《环境工程原理》课后习题答案.pdf VIP
- 2024年吉林长春市总工会公招聘工会社会工作者笔试真题.docx VIP
- 2025吉林长春市总工会公招聘工会社会工作者(107人)招聘笔试备考题库及答案解析.docx VIP
原创力文档


文档评论(0)