线程管理之Thread类相关方法简介

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 开发文档






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值