线程管理之Thread类相关方法简介
java哥
阅读:655
2021-03-31 22:23:04
评论:0
CurrentThread() 静态方法
currentThread()方法可返回代码段正在被那个线程调用的信息。
简单案列:打印main 方法,正在被那个线程调用
package com.zzg.thread;
import com.zzg.obj.ThreadObj1;
public class ThreadDemo1 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out
.println("Thread name is:" + Thread.currentThread().getName());
System.out.println("Thread id is:" + Thread.currentThread().getId());
System.out.println("Thread priority is:"
+ Thread.currentThread().getPriority());
System.out.println("Thread state is:"
+ Thread.currentThread().getState().name());
}
}
package com.zzg.thread;
import com.zzg.obj.ThreadObj1;
public class ThreadDemo1 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ThreadObj1 obj=new ThreadObj1();
Thread thred=new Thread(obj);
thred.start();
}
private static class ThreadObj1 implements Runnable {
//正在调用构造函数,线程相关信息
public ThreadObj1() {
System.out.println("constructor Thread name is:"+Thread.currentThread().getName());
System.out.println("constructor Thread id is:"+Thread.currentThread().getId());
System.out.println("constructor Thread priority is:"+Thread.currentThread().getPriority());
System.out.println("constructor Thread state is:"+Thread.currentThread().getState().name());
}
正在调用run函数,线程相关信息
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println("run Thread name is:"+Thread.currentThread().getName());
System.out.println("run Thread id is:"+Thread.currentThread().getId());
System.out.println("run Thread priority is:"+Thread.currentThread().getPriority());
System.out.println("run Thread state is:"+Thread.currentThread().getState().name());
}
}
}
从运行的结果可以发现,ThreadObj1类的构造函数是被main线程调用,而run 方法是自动调用的方法。
isAlive()实例方法
isAlive()方法是判断当前线程是否处于活动状态。
什么是活动状态?
活动状态是指线程已经启动且尚未终止。线程处于正在运行或准备开始运行的状态,就认为线程是“活动”的。
简单案列:打印线程的活动状态(新建、活动状态、销毁状态)
package com.zzg.thread;
public class ThreadDemo2 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ThreadObj1 obj=new ThreadObj1();
Thread thread=new Thread(obj);
System.out.println("thread is alive:"+thread.isAlive());
thread.start();
System.out.println("thread is alive:"+thread.isAlive());
try{
Thread.sleep(3000);
System.out.println("thread is alive:"+thread.isAlive());
}catch(Exception e){
e.printStackTrace();
}
}
private static class ThreadObj1 implements Runnable {
public ThreadObj1() {
}
@Override
public void run() {
}
}
}
还有其他Thread类的相关方法,大家可以参考JDK 开发文档
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。