JAVA线程之四:线程状态检查,后台线程及线程组

一,线程状态的检查

      一般情况下无法确定一个线程的运行状态,对于这些处于未知状态的线程,可以通过isAlive()方法用来确定一个线程是否仍处在活动状态。当然即使处于活动状态的线程也并不意味着这个线程一定正在运行,对于一个已开始运行但还没有完成任务的线程,这个方法返回值为true。
二,后台线程

      后台线程,即Daemon线程,它是一个在背景执行服务的线程,例如操作系统中的隐藏线程,Java中的垃圾自动回收线程等。如果所有的非后台线程结束了,则后台线程也会自动终止。例如一个主函数main()就是一个非后台线程。
可以使用Thread类中的setDaemon()方法来设置一个线程为后台线程,但是有一点值得注意:必须在线程启动之前调用setDaemon()方法,这样才能将这个线程设置为后台线程。当设置完成一个后台线程后,可以使用Thread类中的isDaemon()方法来判断线程是否是后台线程。
例如:
public class DaemonThread extends Thread

{
      public DaemonThread()

      {
             setDaemon(true);                              //在线程启动之前设置后台线程
             start();                                                     //启动线程
       }
       public static void main(String[] args)

       {
             Thread thread=new DaemonThread();                //实例化Thread对象
             thread.isDaemon();                             //判断thread是否为后台线程
       }
}
代码说明:在构造函数中设置线程为后台线程,然后启动,在主函数中创建线程,使用isDaemon()方法判断此线程是否为后台线程。

三,线程组

      在Java中每一个线程都归属于某个线程组管理的一员,例如在主函数main()主工作流程中产生一个线程,则产生的线程属于main这个线程组管理的一员。简单地说,线程组就是由线程组成的管理线程的类,这个类是java.lang.ThreadGroup类。
      可以通过使用如下代码获取此线程所属线程组的名称。
Thread.currentThread().getThreadGroup().getName();
currentThread():取得当前线程。
getThreadGroup():取得当前线程所在的组。
getName():取得组的名称。
       定义一个线程组,通过以下代码可以实现。
ThreadGroup group=new ThreadGroup("group");
Thread thread=new Thread(group,"the first thread of group");
ThreadGroup类中的某些方法,可以对线程组中的线程产生作用。例如,setMaxPriority()方法可以设定线程组中的所有线程拥有最大的优先权。

 

 

参考原文:http://www.isstudy.com/java/1895.html

你可能感兴趣的:(java,thread,String,活动,Class,任务)