我想在一个时刻查看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线程:创建与启动 Java线程:线程状态的转换 Java线程:线程的同步与锁 一、同步问题提出 二、同步和锁定 三、静态方法同步 四、如果线程不能不能获得锁会怎么样 五、何时需要同步...
### Java线程:线程状态的转换 #### 一、线程状态及其转换 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。一个进程中的多个线程共享同一份内存空间,使得线程间的通信...
在多线程环境中,程序的执行效率和响应性通常会得到显著提升。本篇文章将详细探讨如何在Java中启动线程,以及相关的重要概念和技术。 1. **线程创建方式** - **实现Runnable接口**:这是最常见的创建线程的方式,...
3. **运行**:线程获得CPU时间片后,开始执行run()方法中的代码。 4. **阻塞**:线程由于某些原因(如等待I/O操作、等待其他线程的通知等)无法继续执行,进入阻塞状态。 5. **死亡**:线程完成run()方法的执行或被...
最后,`javaYdmxx521.zip`是包含实际源代码的压缩文件,解压后会得到Java源代码文件,这些文件会展示如何用Java实现哲学家就餐问题的多线程模型。学习者可以通过阅读和分析这些代码,理解并发控制的原理,提升自己在...
- 多线程:在单个程序内部,同时执行多个不同的计算或任务。一个线程代表程序中的一个执行流,它由Java的`java.lang.Thread`类封装。 2. **线程与进程的区别**: - 进程:拥有独立的代码和数据空间,进程间的切换...
Java线程状态流转图知识点总结 Java线程状态流转图是一种用于描述Java线程生命周期中不同的状态和状态转换的图形表示方式。该图形展示了Java线程从创建到终止的整个生命周期,并详细介绍了每种状态的特点和转换...
1. 创建线程: - 继承Thread类:创建一个新的类,继承自Thread类,重写其run()方法,然后创建该类的实例并调用start()方法。 - 实现Runnable接口:创建一个实现了Runnable接口的类,实现run()方法,然后将该类的...
Java提供两种方式创建线程:继承Thread类或实现Runnable接口。线程间的协作可以通过同步机制来确保数据的一致性。 2. **并发控制**:在多线程下载中,我们需要管理这些线程,防止它们相互干扰。Java提供了多种并发...
### Java线程培训资料知识点详解 #### 一、Java线程基本概念 1. **如何编写与启动线程** - **方式一:继承Thread类** ```java class MyThread extends Thread { @Override public void run() { // 业务逻辑 ...
Java多线程是Java编程语言中一个非常重要的概念,它允许开发者在一个程序中创建多个执行线程并行运行,以提高程序的执行效率和响应速度。在Java中,线程的生命周期包含五个基本状态,分别是新建状态(New)、就绪...
Java线程是Java编程中的重要概念,它允许程序同时执行多个任务,从而提高了程序的效率和响应性。在Java中,线程是程序执行的最小单位,由Java虚拟机(JVM)...阅读"Java线程.pdf"文档,你将获得更详细、全面的指导。
线程的优先级可以影响调度,较高的优先级意味着更可能获得CPU时间片,但Java的线程优先级并不总是绝对的,取决于操作系统的支持。 线程同步和阻塞是解决多线程中数据一致性问题的关键。`synchronized`关键字用于...
另一个线程通过调用`notify()`或`notifyAll()`可以唤醒等待的线程,但唤醒的线程需要重新获得锁才能继续执行。 6. **并发工具类**:Java并发包(`java.util.concurrent`)提供了一系列高级并发工具,如`Semaphore`...
- **运行状态**:线程获得了CPU资源,正在执行。 - **阻塞状态**:线程因为某种原因放弃CPU使用权,暂时停止运行。 - **终止状态**:线程执行完毕或者因异常退出。 #### 三、服务器端多线程处理 文档中的示例展示...
线程优先级并不保证执行顺序,但高优先级的线程更有可能获得CPU资源。 4. **线程的休眠与唤醒**: - `Thread.sleep(long milliseconds)`:使当前线程进入睡眠状态,指定时间后自动唤醒。 - `Object.wait()`:让...
线程之间可以并发执行,通过线程调度器来决定哪个线程应该获得CPU执行权。 在Java中,创建线程有两种主要方式: 1. 实现Runnable接口:创建一个类实现Runnable接口,然后将该类的实例传递给Thread类的构造函数,...