java多线程学习2,线程的属性

2023年2月15日07:57:21

示例代码

public class ThreadProperty {

	public static void main(String[] args) {
		TestThread testThread = new TestThread();
		for (int i = 0; i < 5; i++) {
			Thread t = new Thread(testThread, "name" + (i + 1));
			t.setPriority(10 - i);
			if (i == 1)
				t.setDaemon(true);
			t.start();
		}

		Thread main = Thread.currentThread();
		String threadName = main.getName();
		System.out.println("这是主线程" + threadName);
		System.out.println("返回当前线程" + threadName + "的线程组中活动线程的数目" + Thread.activeCount());
		System.out.println("返回当前线程" + threadName + "标识符" + main.getId());
		System.out.println("返回当前线程" + threadName + "优先级" + main.getPriority());
		System.out.println("返回当前线程" + threadName + "状态" + main.getState());
		System.out.println("返回当前线程" + threadName + "所属的线程组" + main.getThreadGroup());
		System.out.println("返回当前线程" + threadName + "是否处于活动状态" + main.isAlive());
		System.out.println("返回当前线程" + threadName + "是否为守护线程" + main.isDaemon());
		System.out.println("返回当前线程" + threadName + "是否中断" + main.isInterrupted());
		try {
			Thread.sleep(5000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		System.out.println("主线程结束了");
	}
}

class TestThread implements Runnable {

	@Override
	public void run() {
		try {
			Thread.sleep(10000);
		} catch (Exception e) {
		}
		Thread thread = Thread.currentThread();
		String threadName = thread.getName();
		System.out.println("这是线程名称" + threadName);
		System.out.println("返回当前线程" + threadName + "的线程组中活动线程的数目" + Thread.activeCount());
		System.out.println("返回当前线程" + threadName + "标识符" + thread.getId());
		System.out.println("返回当前线程" + threadName + "优先级" + thread.getPriority());
		System.out.println("返回当前线程" + threadName + "状态" + thread.getState());
		System.out.println("返回当前线程" + threadName + "所属的线程组" + thread.getThreadGroup());
		System.out.println("返回当前线程" + threadName + "是否处于活动状态" + thread.isAlive());
		System.out.println("返回当前线程" + threadName + "是否为守护线程" + thread.isDaemon());
		System.out.println("返回当前线程" + threadName + "是否中断" + thread.isInterrupted());
	}
}

运行结果

这是主线程main
返回当前线程main的线程组中活动线程的数目6
返回当前线程main标识符1
返回当前线程main优先级5
返回当前线程main状态RUNNABLE
返回当前线程main所属的线程组java.lang.ThreadGroup[name=main,maxpri=10]
返回当前线程main是否处于活动状态true
返回当前线程main是否为守护线程false
返回当前线程main是否中断false
主线程结束了
这是线程名称name2
这是线程名称name4
这是线程名称name1
这是线程名称name3
返回当前线程name2的线程组中活动线程的数目6
返回当前线程name3的线程组中活动线程的数目6
返回当前线程name3标识符12
返回当前线程name3优先级8
返回当前线程name3状态RUNNABLE
返回当前线程name3所属的线程组java.lang.ThreadGroup[name=main,maxpri=10]
返回当前线程name3是否处于活动状态true
返回当前线程name3是否为守护线程false
返回当前线程name3是否中断false
这是线程名称name5
返回当前线程name4的线程组中活动线程的数目6
返回当前线程name1的线程组中活动线程的数目6
返回当前线程name2标识符11
返回当前线程name4标识符13
返回当前线程name1标识符10
返回当前线程name2优先级9
返回当前线程name5的线程组中活动线程的数目5
返回当前线程name1优先级10
返回当前线程name1状态RUNNABLE
返回当前线程name1所属的线程组java.lang.ThreadGroup[name=main,maxpri=10]
返回当前线程name1是否处于活动状态true
返回当前线程name1是否为守护线程false
返回当前线程name1是否中断false
返回当前线程name4优先级7
返回当前线程name4状态RUNNABLE
返回当前线程name4所属的线程组java.lang.ThreadGroup[name=main,maxpri=10]
返回当前线程name4是否处于活动状态true
返回当前线程name4是否为守护线程false
返回当前线程name4是否中断false
返回当前线程name2状态RUNNABLE
返回当前线程name2所属的线程组java.lang.ThreadGroup[name=main,maxpri=10]
返回当前线程name2是否处于活动状态true
返回当前线程name2是否为守护线程true
返回当前线程name2是否中断false
返回当前线程name5标识符14
返回当前线程name5优先级6
返回当前线程name5状态RUNNABLE
返回当前线程name5所属的线程组java.lang.ThreadGroup[name=main,maxpri=10]
返回当前线程name5是否处于活动状态true
返回当前线程name5是否为守护线程false
返回当前线程name5是否中断false

  • 作者:陈大师也爱画画
  • 原文链接:https://blog.csdn.net/u014574478/article/details/68937121
    更新时间:2023年2月15日07:57:21 ,共 2996 字。