`
thinkact
  • 浏览: 82207 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

多线程与cpu利用率的问题

    博客分类:
  • Java
阅读更多
运行环境:
windows2003 64bit, 2g 4核 intel至强cpu, 4G内存
jdk1.5, Jboss 4.2.2
MySql 5
使用了struts, spring, hibernate
任务说明:
使用jdk1.5 的concurrent包创建线程池调度程序, 调度400多个Runnalbe对象, 每10分钟执行一遍400个任务,每个任务在多线程运行的情况下大概需要1分钟才能完成。如果只执行一个任务,用不了1秒钟。

代码片段:
//==============================================================
//myTaskThread -- 任务类
public class myTaskThread implements Runnable{

public void run() {
// 执行任务
。。。
}
}
//====================================================
public class TargetExecutor {
//线程池大小设置
private int poolSize = 10;
private Executor executor; //声明一个执行器

private final Logger log = Logger.getLogger(TargetExecutor.class);
public void init(){
//初始设置线程池大小
executor = Executors.newFixedThreadPool(poolSize); }
//executeTasks()每10分钟执行一次
public void executeTasks() {
//系统启动时把400多个myTaskThread对象存入这个set中
Set taskSet = getTargetThreadSet();
Iterator it = targetSet.iterator();

while(it.hasNext()){
MyTaskThread thread = (MyTaskThread) it.next();
executor.execute(thread);
}
}
}
//====================================================


问题: 尽管任务很多,每个任务耗时也比较长,但是cpu的利用率只有1~2%, 我把线程池的大小调到50, 100, 200都不能提高CPU的利用率。

请问怎样提高jvm的cpu的利用率
分享到:
评论
2 楼 thinkact 2008-07-26  
任务代码有段连接远程web 服务器的动作, 我把它换成循环10000次,CPU的使用率就上去了,看来这就是瓶颈。多谢
1 楼 llade 2008-07-26  
你任务代码里干了什么没贴出来,根本没法评估嘛。
引用

   大概需要1分钟才能完成。

是指400个任务1分钟?400个任务每个任务1分钟?,所有任务完成的时间是多少?你只是启动了10个线程来干活。假如你的任务总是等待IO的话(比如说数据库连接数不够),那CPU利用率根本上不去,瓶颈根本不在线程,你的run方法里找出执行时间最长的语句再分析。

相关推荐

    可以查看多线程cpu占用率的工具

    用在嵌入式linux平台上,通常busybox的top无法看到多线程应用的每个线程的cpu占用率,特地编写了这个小工具.

    让双核cpu利用率100%的代码

    让双核cpu利用率100%的代码,增加多线程就可以,如果想要内存满了,就不断开辟内存,仅仅是eclipse内存。 资源利用率 java 100% cpu 死机 资源利用率 java 100% cpu 死机 资源利用率 java 100% cpu 死机 资源利用率 ...

    采用多线程技术提高多核CPU利用率.pdf

    采用多线程技术提高多核CPU利用率.pdf

    使用python多线程异步提高模型部署到rk3588NPU使用率-python源码+项目使用说明.zip

    使用python多线程异步提高模型部署到rk3588NPU使用率_python源码+项目使用说明.zip 【项目资源说明】 使用多线程异步操作rknn模型, 提高rk3588/rk3588s的NPU使用率, 进而提高推理帧数(rk3568之类修改后应该也能使用,...

    多线程操作实例源码,,

     多线程的好处在于可以提高CPU的利用率——任何一个程序员都不希望自己的程序很多时候没事可干,在多线程程序中,一个线程必须等待的时候,CPU可以运行其它的线程而不是等待,这样就大大提高了程序的效率。...

    多线程操作实例源码

     多线程的好处在于可以提高CPU的利用率——任何一个程序员都不希望自己的程序很多时候没事可干,在多线程程序中,一个线程必须等待的时候,CPU可以运行其它的线程而不是等待,这样就大大提高了程序的效率。...

    110104010104.rar_MFC多任务_MFC多线程挂起_mfc 多线程_mfc 生产者

    线程是程序独立运行的基本单位,一个程序通过执行多个线程可以提高机器本身资源的利用率,同时也可以完成多任务并行运行的操作,多线程可以实现并行处理,避免了某项任务长时间占用CPU时间。 互斥体 互斥体与临界区...

    多线程与多线程爬虫

    1、提高程序的运行速度的第一种方法:提高cpu的利用率。 解决的方式:cpu不用休息就可以做到。 现在我们的程序有一个线程。cpu就只处理他。 如果在程序中遇到:阻塞。一旦阻塞了,cpu就休息了。休息的这段...

    基于多线程的电梯调度模拟仿真系统 开题报告

    实现了多线程,从底层来说,提高了CPU的利用率,从应用层面来说,就能实现动画效果,而且更符合现实世界的情况,因为任何一个体系不可能每一个时刻都只有一件事情发生,而是多个事情同时发生。多线程正是模拟了这种...

    java学习多线程处理

    多线程开发的优势:改善用户体验,提高资源利用率(单线程的处理效率低下) 线程的使用步骤:定义一个线程,创建线程的实例,启动线程,终止线程 主线程:(java中所有的线程都是java.lang.Thread类或者其子类的一...

    java多线程下载课程设计工程源码

    网上找了份资料,是别人完成的Java实现多线程下载的功能。Java多线程的好处挺多的,可以充分利用CPU的资源,简化编程模型,简化异步事件的处理,使GUI更有效率,节约成本...

    Java多线程编程的优点和缺点

    更好的资源利用:多线程可以更有效地使用计算机的资源,如CPU时间、内存和文件句柄等,提高了资源利用率。 支持并发编程:多线程编程是支持并发编程的基础,可以处理多个并发任务,如服务器处理多个客户端请求。 ...

    多线程任务管理器

    一个简易的任务管理器。实现了进程的管理,应用...使用了多线程以及对系统api的使用。另外还利用GDI+实现了性能管理视图。另外还免费赠送一个皮肤dll(DotNetSkin)经过多次测试,完全兼容.Net。非常适合新手拿来学习

    C#多线程.doc

    C#多线程的介绍,适合新人来看,多线程的好处在于可以提高CPU的利用率——任何一个程序员都不希望自己的程序很多时候没事可干,在多线程程序中,一个线程必须等待的时候,CPU可以运行其它的线程而不是等待,这样就...

    C# 多线程详解Thread

    多线程的好处在于可以提高CPU 的利用率——任何一个程序员都不希望自己的程序很多 时候没事可干,在多线程程序中,一个线程必须等待的时候,CPU 可以运行其它的线程而不是 等待,这样就大大提高了程序的效率。

    C#的多线程机制探索

    多线程的好处在于可以提高CPU的利用率——任何一个程序员都不希望自己的程序很多时候没事可干,在多线程程序中,一个线程必须等待的时候,CPU可以运行其它的线程而不是等待,这样就大大提高了程序的效率。

    Python多进程写入同一文件的方法

    但是打开任务管理器发现CPU只占用了25%,上网找了一下原因发现是由于一个叫GIL的存在,使得Python在同一时间只能运行一个线程,所以只占用了一个CPU,由于我的电脑是4核的,所以CPU利用率就是25%了。 既然多线程没有...

    一种针对汽车三维虚拟仿真系统的多线程渲染优化方法 (2014年)

    针对汽车三维虚拟现实仿真系统在多核平台下的渲染效率和CPU利用率较低的这一问题,提出了一种基于OpenMP的多线程渲染优化方法。该方法采取了设置动态线程数量、策略调度以及渲染帧并行绘制等策略,对汽车三维虚拟...

    多线程编程技术在数控测井软件中的应用

    为满足实时测井需求,提高系统资源的利用率和系统性能,在数控测井软件开发中将多线程编程技术应用其中,并对多线程编程技术应用的可行性和必要性进行了分析。给出了软件的模块框图及多线程间关系,利用MFC的自定义...

    mysql数据库CPU高,实时抓住数据库执行中的SQL语句,shell工具(支持mysql5.7)

    #对于多线程,每个线程CPU利用率都低于5%的也不纳入统计,5%数值可以自行调整。 # #执行前确保mysql的环境变量 #需要安装bc命令yum install bc -y 脚本需要在服务器执行,执行前主要修改数据库认证信息: 数据库...

Global site tag (gtag.js) - Google Analytics