线程管理之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()); 
 
	} 
 
} 


简单案列:探讨Thread 线程类run 方法的调用

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.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号