`
wwty
  • 浏览: 542994 次
  • 性别: Icon_minigender_1
  • 来自: 北京-郑州
社区版块
存档分类
最新评论

线程资源释放CPU

阅读更多
这段时间发现自己写的一个线程程序有问题,服务器CPU使用率达到99%往上,然后将自己的程序翻出来看了一下,写了

一个和自己程序模式非常相同的例子:发现CPU使用量也是相当可观的;然后想到了有可能是资源释放的问题,google

了一下找到如下结论:
Thread.sleep()----释放cpu,在它睡觉的这段时间里,不加入线程的运行竞争当中,当然,内存是不会释放的,因为

它没有被gc,仍旧处于可运行状态。
问题解决。
分享到:
评论
3 楼 obnijeh 2009-07-16  
你这个不叫释放cpu。sleep的时候只是没有占用cpu时间。
2 楼 wwty 2009-07-03  
obnijeh 写道
wwty 怎么释放呀。说了一半又没看到代码。麻烦贴一下吧。

public class WhileTest extends Thread
{
   public static void main(String args[]) throws Exception
   {
   WhileTest ghfhf = new WhileTest();
   while(true)
   {
   ghfhf.testx();
   }
  
   }
  
   public void testx() throws Exception
   {
   System.out.println("ffffffffffffffffffff");
   //Thread.sleep(5000);
            /*Thread.sleep(5000);被注释掉和不被注释,你可以看一下CPU的使用情况;我的电脑是双核的,在被注释掉的情况下,CPU蹿升至50%网上,如果去掉注释,就恢复正常了。这只是一个简单的情况,具体应用看你的实际情况了。
*/
   }
}
1 楼 obnijeh 2009-07-02  
wwty 怎么释放呀。说了一半又没看到代码。麻烦贴一下吧。

相关推荐

    线程死锁CPU过高,请求原因分析

    线程死锁是多线程编程中一个严重的问题,它发生在两个或多个线程相互等待对方释放资源,导致它们都无法继续执行。CPU过高通常与过度的计算、无尽循环、死锁、线程竞争状态等问题相关。在Java编程中,WeakHashMap是一...

    C++Builder线程样例

    当不再需要数据收集时,线程应被正确地终止,并确保所有相关资源已释放。 6. **异常处理**:考虑到硬件操作可能抛出异常,线程代码中应包含适当的错误处理和异常捕获机制,以确保程序的稳定性和健壮性。 7. **状态...

    通过 top 和 jstack 确定哪些线程耗尽了 CPU.docx

    这时,我们需要能够快速定位到究竟是哪些线程消耗了大量的CPU资源,以便于进一步分析问题原因并采取相应的解决措施。本文将介绍如何使用`top`和`jstack`两个工具来定位此类问题。 #### 定位步骤详解 1. **使用 top...

    善待进程 释放CPU.pdf

    在IT领域,理解和优化CPU使用率对于提升系统的性能和响应速度至关重要。"善待进程 释放CPU.pdf"这篇文档主要...同时,了解如何善待进程并释放CPU资源,对于日常使用电脑尤其是进行高性能计算或多任务处理时尤其重要。

    C# winform动态创建和关闭多线程源码 可运行

    线程是操作系统分配CPU时间的基本单元。在C#中,我们可以使用System.Threading命名空间中的Thread类来创建和管理线程。主线程是程序默认启动的线程,而创建的新线程则可以执行独立的任务,不影响主线程的工作。 二...

    易语言线程暂停与继续

    当线程完成其任务或者不再需要时,通常会销毁线程以释放系统资源。在易语言中,使用“销毁线程”函数可以安全地结束一个线程。销毁前,应确保线程没有访问共享资源,避免数据不一致或内存泄漏。 6. **线程暂停与...

    终止线程的源代码资源

    然而,线程的终止并不是一个简单的过程,因为它涉及到线程安全、资源释放以及同步等问题。下面我们将深入探讨终止线程的相关知识点。 1. **线程生命周期** - **创建**:线程创建后处于新建状态,等待被启动。 - *...

    Java分布式应用学习笔记03JVM对线程的资源同步和交互机制

    并发则是指多个线程在执行时,在宏观上看起来像是同时进行的,但在微观上,由于CPU的单个核心在同一时刻只能执行一个线程,因此实际上是通过快速切换线程来达到并发的效果。 #### JVM对线程的资源同步和交互机制 ...

    delphi7 多线程测试(40个线程)

    - **资源管理**:确保正确管理和释放线程使用的资源,避免内存泄漏和资源耗尽。 - **调试和监控**:使用如`TThread.Suspend`和`TThread.Resume`等方法来控制线程的暂停和恢复,但要小心,因为它们可能导致死锁。...

    线程方法操作

    当两个或多个线程互相等待对方释放资源而形成的一种僵局,需要避免。预防死锁的方法包括避免循环等待、设置超时、资源预分配等。 8. **线程安全** 线程安全的类或方法能够在多线程环境下正确工作,不会因为线程间...

    C# 如何挂起线程、休眠线程和终止线程(源码例)

    休眠线程是一种避免线程过度占用CPU资源的好方法,尤其在需要定时执行或者需要其他线程执行特定任务时。 3. **终止线程**: 终止线程是指强制结束线程的执行,使其不再继续运行。在C#中,直接使用`Thread.Abort()`...

    delphi判断线程状态

    - **就绪(Ready)**:线程已分配到CPU资源,等待执行。 - **运行(Running)**:线程正在执行。 - **等待(Waiting)**:线程正在等待某个事件(如信号量、互斥量)的发生。 - **终止(Terminated)**:线程已...

    ListView避免多线程加载一个同一资源

    在图片加载完成后,需要更新资源状态为`false`,并释放锁,以便其他等待的线程可以继续执行。这样,所有线程都可以公平地访问资源,而不会出现多个线程同时加载同一资源的情况。 这种同步策略可以有效避免多线程...

    线程属性理解源码——属性、释放线程

    1. **线程优先级**:操作系统根据线程的优先级决定哪个线程优先获得CPU资源。不同的系统有不同的优先级范围,例如在Unix/Linux中,可以使用nice值来设置线程优先级。 2. **线程同步与互斥**:在多线程环境中,为了...

    C#线程详解,单线程,多线程,线程管理

    - 死锁:两个或更多线程相互等待对方释放资源,导致所有线程都无法继续。 - 活锁:线程不断重试导致的无限期等待状态,类似死锁但线程未停止。 - 资源饥饿:低优先级线程长时间无法获取资源。 理解并解决这些问题...

    线程资源问

    "线程资源问题"通常指的是如何有效地创建、使用、管理和释放线程相关的资源,以确保程序的性能、稳定性和内存效率。线程是操作系统分配CPU时间的基本单位,它允许一个程序并发执行多个任务,从而提高系统的整体效率...

    VC++调用大漠插件多线程运行模版

    确保这些资源的正确初始化、使用和释放是多线程编程中的重要一环。 8. **性能优化**:多线程可以提升性能,但过度使用也可能带来调度开销和上下文切换的损失。因此,需要根据具体应用场景和硬件条件合理设计线程...

    多线程编程示例

    2. **死锁**:多个线程互相等待对方释放资源,导致都无法继续执行。避免死锁需要谨慎设计资源获取顺序和释放策略。 3. **线程优先级**:每个线程都有一个优先级,但实际调度仍受操作系统控制,高优先级线程并不保证...

    易语言多线程的运用

    - **线程优先级**:合理设置线程优先级,防止高优先级线程无限占用CPU资源。 6. **源码分析** 提供的"易语言多线程的运用源码"文件,包含了实现上述功能的具体代码,通过学习和分析这些源码,可以更深入地理解...

    线程死锁的例子

    线程死锁是多线程编程中一个严重的问题,它发生在两个或多个线程相互等待对方释放资源,导致它们都无法继续执行。这个概念在计算机科学中尤为重要,因为并发执行是提高系统性能的关键手段,但如果不妥善处理,死锁...

Global site tag (gtag.js) - Google Analytics