回顾多线程的知识
- 进程是应用程序执行的实例,有独立的内存空间和系统资源;
- 线程是CPU调度和分派的基本单位,进程中执行运算的最小单位,真正在CPU上运行的是线程;
- 使用线程的步骤:
①定义线程
②创建线程对象
③启动线程
④终止线程 - main()方法即为主线程入口
一个进程里可以有多个线程,但至少包含一个线程(主线程),Main(String[] args)方法是主线程; - 如果一个类既需要使用创建线程又需要继承某个类,可以实现Runnable接口;
多线程进行网络编程的必要
1、多次数据交互
在程序中设置一个循环,通过循环,不断地向对方发送请求。
2、使服务器同时响应多个客户端的请求
服务器端每接收到一个新的连接请求,就启动一个专门的线程与该客户端进行交互。
- 服务器:一直监听客户请求,一旦监听到有客户请求,立即创建一个新的线程,开启线程
- 线程:接收客户请求,给予客户一个响应
- 客户端:发送请求到服务器端,接收服务器端的响应
范例
实现一个简单的四则运算:客户端从键盘输入四则运算表达式,但不进行运算,而是将表达式传送到服务器端。服务器端接收到表达式后进行处理和计算,将运算结果返回给客户端进行显示。
优点:将简单的交互和复杂的运算进行了有效分离,能充分发挥服务器的强大处理能力。
本例由三个类组成:ClientDemo、ServerDemo、LogicThread
/**
* 下面是客户端程序ClientDemo。
*思路分析:
* ①客户端程序首先与服务器端建立连接,连接成功后生成socket对象,并进一步建立输入流和输出流对象;
* ②使用一个循环与服务器端进行多次数据交互:从键盘输入一个四则运算表达式,将该表达式通过输出流对象传递