本文目录一览:
- 1、Java如何获取正在运行的线程的Id
- 2、用c语言 java 来获取当前(进程)线程状态
- 3、java 根据线程名字查询一个线程,能实现吗?
- 4、java获得当前线程有两种方法,第一种是Thread.currentThread();谁知道另外一种?
Java如何获取正在运行的线程的Id
使用:Thread.currentThread().getName() 就可以了
比如会输出:pool-1-thread-7
用c语言 java 来获取当前(进程)线程状态
通过调用Thread.getState()方法获取当前线程的状态。以下是我的代码,可以直接编译运行。
public class Test {
public static void main(String[] args) {
new NewThread().start(); //启动线程
}
}
class NewThread extends Thread{
public NewThread() {
super("NewThread"); //定义当前线程的名称为NewThread
}
@Override
public void run() {
System.out.println("当前线程:"+currentThread().getName()+"运行状态为:"+getState()); //打印线程的运行状态
}
}
java 根据线程名字查询一个线程,能实现吗?
根据线程名称找到线程,在java中是可以实现的,实现步骤是:
1、首先获取Java VM中当前运行的所有线程
以下代码是用数组返回Java VM中当前运行的所有线程
public static Thread[] findAllThreads()
{
ThreadGroup group = Thread.currentThread().getThreadGroup();
ThreadGroup topGroup = group;
/* 遍历线程组树,获取根线程组 */
while ( group != null )
{
topGroup = group;
group = group.getParent();
}
/* 激活的线程数加倍 */
int estimatedSize = topGroup.activeCount() * 2;
Thread[] slackList = new Thread[estimatedSize];
/* 获取根线程组的所有线程 */
int actualSize = topGroup.enumerate( slackList );
/* copy into a list that is the exact size */
Thread[] list = new Thread[actualSize];
System.arraycopy( slackList, 0, list, 0, actualSize );
return (list);
}
2、遍历线程,比对名称,找到需要寻找的线程
以下代码可得到线程的名称
String name = thread.getName();
java获得当前线程有两种方法,第一种是Thread.currentThread();谁知道另外一种?
另外一种是实现Runnable接口,implements Runnable
这种方法有两个好处是
(1)适合多个相同程序代码的线程去处理同一资源的情况,把虚拟CPU(线程)同程序的代码,数据有效的分离,较好地体现了面向对象的设计思想。
(2)可以避免由于Java的单继承特性带来的局限。经常碰到这样一种情况,即当要将已经继承了某一个类的子类放入多线程中,由于一个类不能同时有两个父类,所以不能用继承Thread类的方式,那么,这个类就只能采用实现Runnable接口的方式了。