`

Java: 获得所有线程

阅读更多

我想在一个时刻查看java中还存在的所有线程, 于是google到了这里.

http://billharlan.com/pub/papers/javatips.html.

 

Getting a list of running Threads

 

  public static String[] getThreadNames() {
    ThreadGroup group = Thread.currentThread().getThreadGroup();
    ThreadGroup parent = null;
    while ( (parent = group.getParent()) != null ) {
      group = parent;
    }
    Thread[] threads = new Thread[group.activeCount()];
    group.enumerate(threads);
    java.util.HashSet set = new java.util.HashSet();
    for (int i=0; i < threads.length; ++i) {
      if (threads[i] != null && threads[i].isAlive()) {
        try {
          set.add(threads[i].getThreadGroup().getName()+","
                  +threads[i].getName()+","
                  +threads[i].getPriority());
        } catch (Throwable e) {e.printStackTrace();}
      }
    }
    String[] result = (String[]) set.toArray(new String[0]);
    java.util.Arrays.sort(result);
    return result;
  }
分享到:
评论

相关推荐

    JAVA单线程多线程

    ### JAVA中的单线程与多线程概念解析 #### 单线程的理解 在Java编程环境中,单线程指的是程序执行过程中只有一个线程在运行。这意味着任何时刻只能执行一个任务,上一个任务完成后才会进行下一个任务。单线程模型...

    java源码:Java多线程程序死锁检查 JCarder.zip

    Java多线程编程是开发高并发应用的关键技术之一,但随之而来的问题也十分复杂,比如死锁。死锁是指两个或多个线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力干涉它们都将无法推进下去。本资料...

    java线程详解

    Java线程:概念与原理 Java线程:创建与启动 Java线程:线程状态的转换 Java线程:线程的同步与锁 一、同步问题提出 二、同步和锁定 三、静态方法同步 四、如果线程不能不能获得锁会怎么样 五、何时需要同步...

    Java线程:线程状态的转换

    ### Java线程:线程状态的转换 #### 一、线程状态及其转换 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。一个进程中的多个线程共享同一份内存空间,使得线程间的通信...

    JAVA 线程中启动线程

    在多线程环境中,程序的执行效率和响应性通常会得到显著提升。本篇文章将详细探讨如何在Java中启动线程,以及相关的重要概念和技术。 1. **线程创建方式** - **实现Runnable接口**:这是最常见的创建线程的方式,...

    java线程.pdf

    3. **运行**:线程获得CPU时间片后,开始执行run()方法中的代码。 4. **阻塞**:线程由于某些原因(如等待I/O操作、等待其他线程的通知等)无法继续执行,进入阻塞状态。 5. **死亡**:线程完成run()方法的执行或被...

    哲学家就餐:Java多线程实例图形版源代码学习

    最后,`javaYdmxx521.zip`是包含实际源代码的压缩文件,解压后会得到Java源代码文件,这些文件会展示如何用Java实现哲学家就餐问题的多线程模型。学习者可以通过阅读和分析这些代码,理解并发控制的原理,提升自己在...

    Java程序开发教学课件:10线程.pptx

    - 多线程:在单个程序内部,同时执行多个不同的计算或任务。一个线程代表程序中的一个执行流,它由Java的`java.lang.Thread`类封装。 2. **线程与进程的区别**: - 进程:拥有独立的代码和数据空间,进程间的切换...

    Java线程状态流转图

    Java线程状态流转图知识点总结 Java线程状态流转图是一种用于描述Java线程生命周期中不同的状态和状态转换的图形表示方式。该图形展示了Java线程从创建到终止的整个生命周期,并详细介绍了每种状态的特点和转换...

    java多线程示例

    1. 创建线程: - 继承Thread类:创建一个新的类,继承自Thread类,重写其run()方法,然后创建该类的实例并调用start()方法。 - 实现Runnable接口:创建一个实现了Runnable接口的类,实现run()方法,然后将该类的...

    Java多线程下载器

    Java提供两种方式创建线程:继承Thread类或实现Runnable接口。线程间的协作可以通过同步机制来确保数据的一致性。 2. **并发控制**:在多线程下载中,我们需要管理这些线程,防止它们相互干扰。Java提供了多种并发...

    Java线程培训资料

    ### Java线程培训资料知识点详解 #### 一、Java线程基本概念 1. **如何编写与启动线程** - **方式一:继承Thread类** ```java class MyThread extends Thread { @Override public void run() { // 业务逻辑 ...

    Java多线程知识点总结

    Java多线程是Java编程语言中一个非常重要的概念,它允许开发者在一个程序中创建多个执行线程并行运行,以提高程序的执行效率和响应速度。在Java中,线程的生命周期包含五个基本状态,分别是新建状态(New)、就绪...

    Java线程基础教程完整版

    Java线程是Java编程中的重要概念,它允许程序同时执行多个任务,从而提高了程序的效率和响应性。在Java中,线程是程序执行的最小单位,由Java虚拟机(JVM)...阅读"Java线程.pdf"文档,你将获得更详细、全面的指导。

    java并发编程:线程基础

    线程的优先级可以影响调度,较高的优先级意味着更可能获得CPU时间片,但Java的线程优先级并不总是绝对的,取决于操作系统的支持。 线程同步和阻塞是解决多线程中数据一致性问题的关键。`synchronized`关键字用于...

    Java多线程编程

    另一个线程通过调用`notify()`或`notifyAll()`可以唤醒等待的线程,但唤醒的线程需要重新获得锁才能继续执行。 6. **并发工具类**:Java并发包(`java.util.concurrent`)提供了一系列高级并发工具,如`Semaphore`...

    sun认证考试辅导:java多线程的部分操作.docx

    - **运行状态**:线程获得了CPU资源,正在执行。 - **阻塞状态**:线程因为某种原因放弃CPU使用权,暂时停止运行。 - **终止状态**:线程执行完毕或者因异常退出。 #### 三、服务器端多线程处理 文档中的示例展示...

    Java 多线程学习总结归纳(附代码)

    线程优先级并不保证执行顺序,但高优先级的线程更有可能获得CPU资源。 4. **线程的休眠与唤醒**: - `Thread.sleep(long milliseconds)`:使当前线程进入睡眠状态,指定时间后自动唤醒。 - `Object.wait()`:让...

    java_Thread.rar_java 多线程_java多线程

    线程之间可以并发执行,通过线程调度器来决定哪个线程应该获得CPU执行权。 在Java中,创建线程有两种主要方式: 1. 实现Runnable接口:创建一个类实现Runnable接口,然后将该类的实例传递给Thread类的构造函数,...

Global site tag (gtag.js) - Google Analytics