您的位置:首页 > 编程语言 > Java开发

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

2017-03-31 22:30 411 查看
示例代码

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: