示例代码
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
热门文章
- 小型狗粮生产设备厂家(小型狗粮加工设备)
- 动物医院英语翻译怎么写的(动物医院 翻译)
- 「11月11日」最高速度21.6M/S,2024年Clash Nyanpasu每天更新免费节点订阅链接
- 农大动物医院有夜间急诊吗多少钱啊(农大动物医院急诊电话)
- 「11月20日」最高速度21.8M/S,2024年Clash Nyanpasu每天更新免费节点订阅链接
- 「12月12日」最高速度18.5M/S,2024年Clash Nyanpasu每天更新免费节点订阅链接
- 「1月28日」最高速度22.1M/S,2025年Clash Nyanpasu每天更新免费节点订阅链接
- java多线程学习2,线程的属性
- 19-Spring AOP源码分析-代理对象调用目标方法
- 中国十大宠物粮品牌排行榜最新名单(国内十大宠物粮食品牌)