在操作线程的时候,有时候会需要获得线程对象,以确定线程的运行状态,这时候怎么取得自己的线程就成了一个问题。

在java的API中除了currentThread外没有返回Thread对象的方法,在本人探索后,可以用以下方法获得Thread对象:

首先,最好先为自己的线程设置一个线程名

Iterator iterator = Thread.getAllStackTraces().keySet().iterator();

// 在Thread对象中取得所有的线程所在的栈,然后取得Set对象,便利取得所有的线程

Thread myThread = null ;

while(iterator.hasNext()){

Thread t = (Thread)iterator.next();

// 根据线程名取得自己想要的线程

if(t.getName().equals("myThread"){

myThread = t ;

break ;

}

}