【牛客带你学编程Java方向】项目练习第7期(截止5.16)
Java方向活动帖:【牛客带你学编程】【Java方向】0基础小白入门培养计划!
牛客带你学编程活动总贴:【牛客带你学编程】0基础小白入门培养计划!
Java项目练习:第7期
练习时间:5月2日-5月16日(2周)
活动规则:
活动规则:
- 每一期一个项目,届时会开新帖发布
- 学员直接将答案提交到该贴评论区即可
- 两周后,公布导师参考答案
- 导师评选出当期最佳代码(将被设置为精彩回复)
奖励:牛客大礼包一份(牛客定制水杯 牛客定制笔 牛客定制程序员徽章 滑稽抱枕)
参与方式:直接将你的代码回复到本帖评论区
-----------------------------------------------------
本期题目:
设计实现一个线程池(120分钟)
需求描述:
线程池这种技术及时为了解决减少线程的创建时间和销毁时间,在客户端的任务请求来到之前,服务器已经创建好了多个线程并把它放在线程池里以供客户端的任务使用,从而提高服务器端的性能,现要求实现一个基本的线程池,要求实现逻辑中涵盖以下4个功能部件:
考察知识点:
线程池这种技术及时为了解决减少线程的创建时间和销毁时间,在客户端的任务请求来到之前,服务器已经创建好了多个线程并把它放在线程池里以供客户端的任务使用,从而提高服务器端的性能,现要求实现一个基本的线程池,要求实现逻辑中涵盖以下4个功能部件:
- 线程池管理器 主要用于实现创建线程和添加客户端请求的新任务,执行任务以及如何回收已经执行完任务的线程。
- 工作线程对象 线程池中的线程,它主要用于处理任务队列中的任务。
- 任务对象 定义任务的各种属性,以及要完成的操作
- 任务队列容器 按先来先服务的顺序用于存放新加入的任务,以便让工作线程来执行
- 线程池的理解
- 复杂多线程模型构建
- Java任务调度相关工具类的使用
参考知识点:《java基础入门》第3章、第5章
参与方式:直接将你的代码回复到本帖评论区