版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1/34多线程与网络编程第一单元
《Java高级特性》多线程与网络编程字节流、字符流读取文本时中文乱码处理序列化和反序列化回顾与作业点评问题2/34了解线程与进程的概念创建和启动线程理解网络相关的一些概念运用ServerSocket类和Socket类实现网络通信会使用基于UDP协议的Socket编程本章目标3/34进程与线程有独立的内存空间和系统资源4/34线程常见方法5方法名称说明staticThreadcurrentThread()返回对当前正在执行的线程对象StringgetName()返回该线程的名称。voidsetName(Stringname)设置线程的名称intgetPriority()返回线程的优先级。voidsetPriority(intnewPriority)更改线程的优先级。staticvoidsleep(longmillis)当前线程休眠millis毫秒,然后执行voidstart()使该线程开始执行,执行run方法中的代码线程的创建和启动在Java中创建线程的两种方式继承java.lang.Thread类实现java.lang.Runnable接口使用线程的步骤6/34课堂练习—创建线程需求说明创建线程,输出1~100之间的偶数要求使用两种方式创建线程继承java.lang.Thread类实现java.lang.Runnable接口完成时间:10分钟共性问题集中讲解7/34线程的状态线程的生命周期包括五个状态:新生状态、就绪状态、运行状态、阻塞状态和死亡状态8/3412同步方法(
synchronized
)同步代码块(
synchronized
)
线程同步问题
当两个或多个线程需要访问同一资源时,需要确保该
资源某一时刻只能被一个线程使用,如何实现?9/34买票程序需求:4个人同时买100张票要点:利用创建线程的两种方法怎么实现4个人共享100张票防止有人取到不存在的票10同步方法与同步块非静态同步方法使用的锁是this静态同步方法使用的锁是当前对象的字节码文件对象,即类名.class同一时刻最多只有一个类实例所对应的锁持有不同锁的线程,仍可以执行同步方法或者同步块的代码11wait,sleep的区别sleep可以使当前的线程暂停指定的时间,但是在此期间不会释放对象锁wait也是使当前线程进入阻塞状态,但是会将持有的对象锁释放,当在本对象上使用notify或notifyAll方法时,才会解除阻塞状态12wait()与notify()/notifyAll()wait方法:导致线程进入等待状态,并释放锁。只有获得该对象的同步锁才可以调用这个方法,否则但运行时会出现IllegalMonitorStateException。notify:随机解除一个在该对象上调用wait方法线程的阻塞状态notifyAll:解除所有在该对象上调用wait方法的线程的阻塞状态注意:这些方法都必须方法同步方法或者同步代码块中13循环打印需求:两个线程依次打印1,2,共打印1000次14完善单例模式回顾两种单例模式分析单例模式中的线程问题15交换数据共享资源网络
网络概述问题
根据你的理解,说一说网络有什么好处?你利用网络都能做什么?
相互连接的计算机16/34详细地址寄送信件两台计算机通信,
双方都必须有地址
IP地址
IP地址介绍问题
什么是IP地址?为什么需要IP地址?
邮局寄信的过程17/34IP地址的组成
2-1IP地址(InternetProtocol)
唯一标识网络上的每一台计算机IP地址的组成
32位,由4个8位二进制数组成
11000000.10101000.00000001.11001000
二进制不便记忆
00
88
这个IP地址可能存在吗?
18/34问题
IP地址的组成
2-2IP地址
=
网络地址
+主机地址
网络地址:标识计算机或网络设备所在的网段
主机地址:标识特定主机或网络设备ABC类:类:类:DE网络网络网络主机网络网络主机主机网络主机主机主机8位24位224~239240~255
前8位取
值范围
1~126128~191192~223类:
用于组播通信类:用于科研19/34IP地址的配置和检测查看IP地址,检测网络是否畅通查看本机的IP地址测试网络是否通畅ipconfigping
目标IP地址演示示例:IP地址的配置和检测语法语法20/34课堂练习需求说明配置IP地址练习常用网络命令:ipconfig、ping完成时间:5分钟共性问题集中讲解21/34DNS域名解析DNS:Domain
Name
System,域名系统问题访问网站时,为什么输入网址而不是IP地址?22/34每个IP地址都可以有一个主机名,主机名由一个或多个字符串组成,字符串之间用小数点隔开。有了主机名,就不要死记硬背每台IP设备的IP地址,只要记住相对直观有意义的主机名就行了。网络服务器网络服务器通常指在网络环境下,具有较高计算能力,能够提供用户服务功能的计算机网络服务器邮件服务器Web服务器23/34
网络通信协议网络通信协议
为了在网络中不同的计算机之间进行通信而建立的规
则、标准或约定的集合应用层传输层物理层
19
/
34
网络层数据链路层HTTPSMTP
TCPFTP
TFTPSNMP
DNS
UDP
ICMP
IGMP
IP
ARP
RARP由底层网络定义的协议连接在一起,构成的是()。网络中有一台主机,IP地址是,它的网络ID是()210.10.8。
小结问题
某公司使用一台路由器,将公司的50台计算机25/34局域网
Socket简介什么是Socket?
物流送快递的过程写清地址收到货物快递点快递点
SocketSocket通信链路的端点就被称为“套接字”(英文名Socket)是提供给应用程序的接口
Socket的底层机制复杂,Java平台提供了一些简单的API,
可以更简单有效的使用Socket开发而无需了解底层机制
26/34包SocketServerSocketDatagramPacketDatagramSocketInetAddress„„包27/34基于TCP协议的Socket编程
2-1基于TCP协议的Socket网络通信用来实现双向安全连接网络通信Socket通信模型进行网络通信时,Socket需要借助数据流来完成数据的传递工作28/34
基于TCP协议的Socket编程
2-2Socket网络编程一般可以分成如下步骤进行建立连接网络编程模型:客户端/服务器
(C/S)
打开Socket关联的输入输出流
数据流中读写信息
关闭所有的数据流和Socket演示示例:客户端发送信息给服务器端
29/34课堂练习—模拟用户登录的功能需求说明模拟用户登录的功能实现客户发送登录用户信息,服务器端显示登录信并响应给客户端登录成功完成时间:15分钟共性问题集中讲解30/34如何传递对象信息呢?Socket中实现对象的传递ObjectOutputStream
oos
=
new
ObjectOutputStream(…);oos.writeObject(…);ObjectInputStream
ois
=
new
ObjectInputStream(…);Object
=
ois.readObject();序列化演示示例:客户端发送对象给服务器端31/34多线程处理多请求如何实现多客户请求呢?采用多线程的方式一个专门负责监听的应用主服务程序一个专门负责处理请求的线程程序32/34课堂练习—多客户端用户登录需求说明升级前一个上机内容,实现多客户端用户登录分析创建服务器端线程类,run()方法中实现对一个请求的响应处理修改服务器端代码,实现循环监听状态服务器端每监听到一个请求,创建一个处理线程完成时间:15分钟共性问题集中讲解33/34TCPUDP是否连接面向连接面向非连接传输可靠性可靠不可靠速度慢快基于UDP协议的Socket编程
2-234/34基于UDP协议的Socket编程
2-2利用
DatagramPacket
对象封装数据包利用
DatagramSocket
发送数据包利用
DatagramSocket
接收数据包利用
DatagramPacket
处理数据包基于UDP协议的Socket网络编程步骤:演示示例:客户咨询问题35/34课堂练习——客户咨询问题
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论