您的位置:首页 > 理论基础

了解并实现线程池模型的构建

2014-03-24 14:21 288 查看
软件在运行时,启动和销毁一条线程都需要消耗计算机的资源,所以我们需要尽量的减少计算机的消耗,并且能达到我们软件运行的最佳效率
就好像一个工厂,每个工人我们都认为他是一条线程,如果需要他工作,我们就叫他过来,如果不需要工作,我们是让他在这等,还是让他回家呢?
如果是平时多线程的操作方式,我们就是让他回家等,这样的话,当有新任务需要人工作的时候,叫他过来,中间多了一套流程,如果让他在这等呢,我们需要他工作了,那我们就可以直接把工作交给他,中间可以节约电话费的成本(当然了只是打个比如),工作量大时,我们可以多叫几个工人,当长时间不需要工作的时候呢, 我们就可以叫一些工人回家,只需要留下少量的工人等待.
线程池就是这个处理的过程,一个完整的线程池必须存在以下几个功能:
1: 管理线程池各项任务的线程;创建和管理线程池,包括各项参数,当闲置的(等待的线程)太多的时候,销毁一部分线程以便计算机有更多的资源提供给其他软件或线程(只留下线程池容量的最小值线程数量).当需要处理的工作较多时,创建更多的线程来处理(达到线程池容量的最大值),并且可以记录当前正在处理,等待处理等各项数据;
2:工作线程;用以处理任务;
3:提交任务的接口;用以提交给线程池,激活闲置的线程;
4:任务队列;用以存放没有处理的任务,提供一种缓存机制;
那么针对线程池模型的以上这些特性,我们知道哪些适合用线程池来处理了
1:需要大量的线程来处理的任务,而且完成任务的流程类似,时间较短,频繁的使用。比如:批量登录一个网站,当有大批帐号需要登录时,我们就可以使用线程池技术,因为他登录的流程是一样的,而任务的数量无疑是巨大的,所以线程池能更灵活的来调配和处理这些任务.
2:对性能要求严格的软件,比如要求网站快速响应我们的请求返回数据
3: 需要承接大量的请求,当一次性接收到大量的任务请求,计算机的资源是有限的,如果是创建大量的线程,势必会造成线程数量超出系统默认的极限,软件将出现资源枯竭的错误(计算机无法为软件提供资源的情况)虽然在理论上来说,计算机的资源是很大的,但是短时间创建大量的线程,还是会让计算机无法为你的软件提供支持(资源)

【转载自:iHk-system.com|寻访诸神的网站】
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐