加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java中的ThreadGroup

发布时间:2020-12-15 00:40:36 所属栏目:Java 来源:网络整理
导读:我目前正在学习 Java中的Threads基础知识,我正在尝试编写一个简单的Thread Group程序.虽然我得到了不同类型的输出,但我和教程网站一样写了它.下面是我的代码,我得到不同的输出. public class ThreadGroupDemo implements Runnable { @Override public void r
我目前正在学习 Java中的Threads基础知识,我正在尝试编写一个简单的Thread Group程序.虽然我得到了不同类型的输出,但我和教程网站一样写了它.下面是我的代码,我得到不同的输出.
public class ThreadGroupDemo implements Runnable {

    @Override
    public void run() {
        System.out.println(Thread.currentThread().getName());
        // get the name of the current thread.
    }

    public static void main(String[] args) {
        ThreadGroupDemo runnable = new ThreadGroupDemo();
        ThreadGroup tg1 = new ThreadGroup("Parent Group");
        // Creating thread Group.

        Thread t1 = new Thread(tg1,new ThreadGroupDemo(),"one");
        t1.start();
        t1.setPriority(Thread.MAX_PRIORITY);

        Thread t2 = new Thread(tg1,"second");
        t2.start();
        t2.setPriority(Thread.NORM_PRIORITY);

        Thread t3 = new Thread(tg1,"Three");
        t3.start();

        System.out.println("Thread Group name : " + tg1.getName());
        tg1.list();
    }

}

我正进入(状态
输出:

Thread Group name : Parent Group
Three
java.lang.ThreadGroup[name=Parent Group,maxpri=10]
    second
one
Thread[one,10,Parent Group]
    Thread[second,5,Parent Group]
    Thread[Three,Parent Group]

输出应该像:

one
two
three
Thread Group Name: Parent ThreadGroup
java.lang.ThreadGroup[name=Parent ThreadGroup,maxpri=10]
    Thread[one,Parent ThreadGroup]
    Thread[two,Parent ThreadGroup]
    Thread[three,Parent ThreadGroup]

我无法理解为什么会这样?设置优先级可以帮助吗?

解决方法

即使具有优先级,您也无法预测线程的执行顺序.您无法控制计划.这是你的OS决定.

关于Java并发性的好书:Java concurrency in practice

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读