关于多请求线程管理的问题

问题描述

最近在研究多线程方面的技术,现在有这么一个问题,有多次请求,每次请求都需要新开一个线程来处理一些特殊的任务,但是如果不对线程数做一些控制的话会导致线程过多效率下降,而我能想到的解决方法是通过线程池的方式来限定线程的数目,超出线程数目的任务在线程池队列中等待或者检查当前线程池是否已满,满了的话就通知用户等待下次请求。现在的问题是我在程序中通过Executors.newCachedThreadPool的方式建立连接池,但是由于是多个请求的方法我不知道这样会不会造成最终建立了多个线程池,也就是说如何在多请求的情况下使用一个线程池来管理线程,这个应该跟servlet的实现有些类似,但我找不到servlet的实现远离代码,还有就是如何获取到这个线程池是否满了的情况从未回馈给用户

解决方案

解决方案二:
汗自己顶一下有没有好心人能给点建议的
解决方案三:
难道每次请求来了你都new一个线程池?怎么会有多个,你先new一个放那用不就得了,请求来了取线程处理。

时间: 2024-10-30 10:26:10

关于多请求线程管理的问题的相关文章

线程管理:守护线程的创建和运行

线程管理:守护线程的创建和运行 守护线程的创建和运行Java有一种特别的线程叫做守护线程.这种线程的优先级非常低,通常在程序里没有其他线程运行时才会执行它.当守护线程是程序里唯一在运行的线程时,JVM会结束守护线程并终止程序. 根据这些特点,守护线程通常用于在同一程序里给普通线程(也叫使用者线程)提供服务.它们通常无限循环的等待服务请求或执行线程任务.它们不能做重要的任务,因为我们不知道什么时候会被分配到CPU时间片,并且只要没有其他线程在运行,它们可能随时被终止.JAVA中最典型的这种类型代表

《多核与GPU编程:工具、方法及实践》----3.8 动态线程管理与静态线程管理

3.8 动态线程管理与静态线程管理 3.2.3.1节介绍过,Qt管理一组就绪的线程池,不需要操作系统来分配和初始化新线程实体.尽管创建线程的开销较之创建进程的开销要小几个量级,但它仍然是较为耗时的,特别是当线程需要在运行时动态生成时.一个经典的粒子是监听请求和分配线程进行服务的并发Web或者数据库服务器.在这种情况下线程可以从一个空闲线程库中选取并重用,而不是为每一个请求创建一个新的线程.QThreadPool类提供的功能正是这种线程库. 本节将要介绍如何利用QThreadPool,以及如何创建

iOS多线程编程之一——NSThread线程管理

iOS多线程编程之一--NSThread线程管理 NSTread是iOS中进行多线程开发的一个类,其结构逻辑清晰,使用十分方便,但其封装度和性能不高,线程周期,加锁等需要手动处理. 一.NSThread类方法总结 获取当前线程 ? 1 + (NSThread *)currentThread; 这个方法通过开启一个新的线程执行选择器方法 ? 1 + (void)detachNewThreadSelector:(SEL)selector toTarget:(id)target withObject:

Linux线程管理必备:解析互斥量与条件变量的详解_C 语言

   做过稍微大一点项目的人都知道,力求程序的稳定性和调度的方便,使用了大量的线程,几乎每个模块都有一个专门的线程处理函数.而互斥量与条件变量在线程管理中必不可少,任务间的调度几乎都是由互斥量与条件变量控制.互斥量的实现与进程中的信号量(无名信号量)是类似的,当然,信号量也可以用于线程,区别在于初始化的时候,其本质都是P/V操作.编译时,记得加上-lpthread或-lrt哦.    有关进程间通信(消息队列)见:进程间通信之深入消息队列的详解 一.互斥量 1. 初始化与销毁:    对于静态分

线程管理(四)操作线程的中断机制

操作线程的中断机制 在之前的指南里,你学习了如何中断执行线程和如何对Thread对象的中断控制.之前例子中的机制可以很容易中断的线程中使用.但是如果线程实现的是由复杂的算法分成的一些方法,或者它的方法有递归调用,那么我们可以用更好的机制来控制线程中断.为了这个Java提供了InterruptedException异常.当你检测到程序的中断并在run()方法内捕获,你可以抛这个异常. 在这个指南中, 我们将实现的线程会根据给定的名称在文件件和子文件夹里查找文件,这个将展示如何使用Interrupt

线程管理(八)在线程里处理不受控制的异常

在线程里处理不受控制的异常 Java里有2种异常: 检查异常(Checked exceptions): 这些异常必须强制捕获它们或在一个方法里的throws子句中. 例如, IOException 或者ClassNotFoundException. 未检查异常(Unchecked exceptions): 这些异常不用强制捕获它们.例如, NumberFormatException. 在一个线程 对象的 run() 方法里抛出一个检查异常,我们必须捕获并处理他们.因为 run() 方法不接受 t

线程管理(一)线程的创建和运行

线程的创建和运行 在这个指南中,我们将学习如何在Java程序中创建和运行线程.与每个Java语言中的元素一样,线程是对象.在Java中,我们有2个方式创建线程: 通过直接继承thread类,然后覆盖run()方法. 构建一个实现Runnable接口的类, 然后创建一个thread类对象并传递Runnable对象作为构造参数 在这个指南中,我们将使用第二种方法来制作一个简单的程序,它能创建和运行10个线程.每一个线程能计算和输出1-10以内的乘法表. 准备 指南中的例子是使用Eclipse IDE

jQuery Ajax请求状态管理器打包_jquery

然而,无论有多么接近,通过客户端与服务端的一来一回,必定会有等待加载数据的时间.所以,大多数网站都通过一个Gif动态图标或'Loading...'等字样来告知用户数据还在加载中.但有时候这个问题会非常繁琐和麻烦,要么将这个'Loading'显示在ajax请求之前,然后在ajax成功后隐藏它,或者将它写在jquery的ajax的全局事件jQuery.ajaxStart()和jQuery.ajaxStop()中来控制整个页面的ajax状态.前者方法使用起来太琐碎,每个请求都要写一遍这个'Loadin

一个简单的线程管理方式。

文章来源: www.17173.com 周末,总是有点那么的无聊.闲来没事,想想每次自己要进行多线程编程时的痛苦,也并借机考虑设计了一个简单的线程管理方式.      没什么好说的,首先想想线程的创建,每次都要CreateThread,传递一堆的参数,还得没事查查MSDN,唉,效率低啊.反正,对于我来说,线程基本都是缺省优先级.缺省安全的.不如把这些一起封装了.     不多说,C++不用对象机制用什么?顺便借鉴一下java.来个实际线程就是run,启动采用start. class thread