现在服务器端的应用程序几乎都采用了“线程池”技术,这主要是为了提高系统效率。因为如果服务器对应每一个请求就创建一个线程的话,在很短的一段时间内就会产生很多创建和销毁线程动作,导致服务器在创建和销毁线程上花费的时间和消耗的系统资源要比花在处理实际的用户请求的时间和资源更多。线程池就是为了尽量减少这种情况的发生。
下面我们来看看怎么用Java实现一个线程池。一个比较简单的线程池至少应包含线程池管理器、工作线程、任务队列、任务接口等部分。其中线程池管理器(ThreadPool Manager)的作用是创建、销毁并管理线程池,将工作线程放入线程池中;工作线程是一个可以循环执行任务的线程,在没有任务时进行等待;任务队列的作用是提供一种缓冲机制,将没有处理的任务放在任务队列中;任务接口是每个任务必须实现的接口,主要用来规定任务的入口、任务执行完后的收尾工作、任务的执行状态等,工作线程通过该接口调度任务的执行。
一种就是以固定线程数目作为基准,让每一个线程的工作线程都处于无限循环中,利用Java中基类的nodify()与wait()进行协同工作。
基本思想如下:
在构建线程池的时候创建所有工作线程,并且让所有工作线程开始运行。
public ThreadPool(int nPoolSize)
{
if(nPoolSize<=0)
{
nPoolSize=DEFAULT_POOL_SIZE;
}
m_ThreadList=new ArrayList();
m_RunList=new LinkedList();
for(int i=0;i
{
WorkerThread temp=new WorkerThread(i+1);
m_ThreadList.add(temp);
temp.start();
}
}
在工作线程的run()方法中用wait()进行等待,当线程处于wait()状态基本不占用CPU,这样所有工作线程都处于挂起状态,等待任务来唤醒。
实现如下:
while (true)
{
synchronized (m_RunList)
{
while (m_RunList.isEmpty())
{
//任务列表为空则进行等待,否则运行任务,并在本任务列表里面剔除任务
try
{
m_RunList.wait();
}
catch (InterruptedException e) {}
}
r = (Runnable) m_RunList.removeFirst();
file://System.out.println(m_nThreadID + ":Start");
if (r == null)return;
}
try
{
r.run();
}
catch (Exception e) {}
}
以上代码就是一个工作线程主要代码。这个线程永远不会停止,只可能被挂起,或者运行任务。
分享到:
相关推荐
本文主要探讨了Java中的线程池,包括为何要使用线程池、线程池的原理、如何优化线程池参数以及线程池与Go语言中的协程(goroutine)的对比。 ### 为什么使用线程池 1. **系统资源消耗**:线程是操作系统中的基本...
浅谈共同遗嘱制度构建及立法探索
浅谈企业如何构建现代财务管理体系论文.doc
浅谈如何构建食品微生物及真菌毒素污染物智能化溯源系统.pdf
浅谈工会在构建和谐企业中的作用.docx
浅谈如何构建现有计算机网络安全体系结构.pdf
浅谈和谐社区构建:以社区网格化管理为例-论文.zip
精品资料(2021-2022年收藏的)浅谈企业如何构建现代财务管理体系.doc
云计算在网络体系构建中的应用分析 云计算作为一种先进的计算方式,近年来在互联网行业得到了广泛的应用。云计算的特点包括海量的存储能力、强大的数据处理和计算能力。与传统计算方式相比,云计算具有更强的运算...
【标题】:“基于.Net Remoting和构建线程池实现分布式计算” 【描述】:该文档介绍了如何利用.Net Remoting技术以及线程池来构建分布式计算系统,旨在提供一种实用的分布式计算解决方案。 【标签】:分布式、...
浅谈快乐课堂的构建.doc
### 浅谈Python线程池ThreadPool之实现 在并发编程领域,线程池技术是一种非常高效的方法,可以显著提升程序的执行效率。Python中的`threadpool`库为开发者提供了便捷的方式来管理和利用线程池。本文将详细介绍...
浅谈如何构建网络安全防护体系.pdf
ERP\erp浅谈ERP\erp浅谈ERP\erp浅谈ERP\erp浅谈ERP\erp浅谈ERP\erp浅谈ERP\erp浅谈
注意力机制浅谈注意力机制及其作用浅谈注意力机制及其作用浅谈注意力机制及其作用浅谈注意力机制及其作用浅谈注意力机制及其作用浅谈注意力机制及其作用浅谈注意力机制及其作用浅谈注意力机制及其作用浅谈注意力机制...
《浅谈企业人力资源培训体系的构建》 在现代知识经济时代,企业的竞争优势不再仅局限于物质资源,而是更多地聚焦于人力资源。企业的成长和发展离不开对人才的挖掘、培养和利用,人力资源已经成为企业竞争力的核心...
浅谈-构建新型循环经济金融支持体系.doc
浅谈如何构建符合我国国情的量刑程序.docx
网络安全:浅谈如何构建网络安全防护体系.pdf
浅谈构建科技文化创新体系.docx