课程名称:互联网程序设计 姓名:
实验名称:实验三 线程池与一客户一线程(2学时) 一、实验目的及要求 1.理解掌握服务器线程池通用技术根架。 2.用线程池技术替换一客户一线程方法,改写EchoServer。 二、实验环境 多媒体计算机 Windows7操作系统 JDK 8 Netbeans IDE8.2(开发语言Java) 三、实验内容 1.拓展服务器KKServer的线程池设计。 2.用线程池技术改写EchoServer,实现一客户一线程与线程池之间的比较学习,理解两者之间的技术差异,领会线程池的技术本质。 四、实验步骤(或记录)及相关代码 1.拓展服务器线程设计: 年级:2017级 学号:
实验日期: 班级:
教师评语(成绩):
代码修改部分如下:
int threadPoolSize=Integer.valueOf(txtRemoteNumber.getText().trim());
fixedPool=Executors.newFixedThreadPool(threadPoolSize);//创建固定大小线程池 结果:
2.用线程池技术改写EchoServer: 界面设计:
结果:
思考:
(1)Java线程池的技术框架是如何定义实现的?
答:首先导入包:mport java.util.concurrent.ExecutorService; 然后定义:private ExecutorService fixedPool; //线程池
再然后设定大小:fixedPool=Executors.newFixedThreadPool(fixe); 最后用线程池调度客户线程运行:fixedPool.execute(clientThread); (2)线程池的大小应该由哪些因素确定?
答:CPU个数,内存大小,任务类型,资源类型等等。
(3)什么情况下,客户线程用SwingWorker 五、总结 对上机实践结果进行分析,问题回答,上机的心得体会及改进意见。 通过本次实验明白了线程池的基础,和它的技术本质,也明白了一客户一线程与线程池之间的差异。 因篇幅问题不能全部显示,请点此查看更多更全内容