背景
上篇文章(一文带你进入Java之ThreadPool)基本上介绍了Java中的线程池的类型,以及如何按照业务不同自定义线程池。那么问题来了,池建好了,如何让它运行起来呢?本文主要围绕这一主题——让线程池跑起来,进行测试!
测试内容
思路:模拟多个客户端向服务器发送文件,服务器端一旦监听到请求,立即抛给线程池进行处理,工作线程接受客户端数据,将文件落地。
tips: 只是一个简单的c/s模式,主要测试线程池性能。
步骤
- 开启服务器进行监听
- 用多个线程模拟多个客户端,向服务器发送消息
- 服务器监听到请求,立即交给线程池处理
- 线程池分配线程接受任务
代码实现
先说明各个文件作用
TestServerMain.java
用于开启服务器,并开始监听请求TestClientMain.java
用于开启客户端,并开始发送文件Client.java
发送文件的实现类Server.java
服务器初始化和监听实现类ServerFileHandler.java
服务器端存储文件实现类
TestServerMain.java
开启服务器
1 | package com.norman.threadpool; |
TestClientMain.java
开启客户端
1 | package com.norman.threadpool; |
Client.java
客户端发送文件
1 | package com.norman.threadpool; |
Server.java
服务器接受请求,具体处理交给ServerFileHandler去处理
1 | package com.norman.threadpool; |
ServerFileHandler.java
服务器端处理客户端发来的数据
1 | package com.norman.threadpool; |
客户端发送文件后截图:
服务器端收到文件后截图: