首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不了解线程o/p

不了解线程o/p
EN

Stack Overflow用户
提问于 2012-12-17 19:37:59
回答 5查看 107关注 0票数 1

我正在做scjp学习,我的问题如下:

代码语言:javascript
运行
复制
public class Bunnies extends Thread{


    public static void main(String[] args) {
        Thread t = new Thread(new Bunnies());
        Thread t1 = new Thread(new Bunnies());
        t.start();
        t1.start();

    }
    public  void run()
    {
        for(int i=0; i<3; i++)
        {
            System.out.println(Thread.currentThread().getName()+"  ");
        }
    }

}

当我运行上面的程序时,我得到的o/p如下:

代码语言:javascript
运行
复制
Thread-1  
Thread-1  
Thread-1  
Thread-3  
Thread-3  
Thread-3  

我不明白为什么Thread-2不显示在这里,只显示Thread 1和Thread 3。

请解释一下。

EN

回答 5

Stack Overflow用户

发布于 2012-12-17 19:44:11

每次创建扩展ThreadBunnies时,也会创建一个Thread,因此数字之间存在差距。

您的第一次运行:Thread t = new Thread(new Bunnies());new Bunnies()Thread-0tThread-1

然后运行Thread t1 = new Thread(new Bunnies());new Bunnies()Thread-2t1Thread-3

但是请注意,您不应该依赖线程编号,因为the javadoc不能保证这些编号是连续的。

您可以使用以下代码进行验证:

代码语言:javascript
运行
复制
public static void main(String[] args) {
    Bunnies b = new Bunnies();
    Thread t = new Thread(b);
    Bunnies b1 = new Bunnies();
    Thread t1 = new Thread(b1);
    System.out.println(b.getName()); //Thread-0
    System.out.println(t.getName()); //Thread-1
    System.out.println(b1.getName()); //Thread-2
    System.out.println(t1.getName()); //Thread-3
}
票数 4
EN

Stack Overflow用户

发布于 2012-12-17 19:42:22

我不明白为什么

-2没有显示在这里,只显示了Thread1&3。

在抽象视图中,至少有5个线程:maintt1。(和两个匿名线程)

代码语言:javascript
运行
复制
class Bunnies extends Thread

因此,当您创建Bunnies类的对象时,就会创建一个线程,并为它指定一个名称。

因为main不会执行run方法,匿名线程也不会启动,即不会调用start()。只有tt1会执行run方法,因此你只能得到两个线程名。

命名顺序如下:

票数 1
EN

Stack Overflow用户

发布于 2012-12-17 19:43:15

好了,您有两个Bunnies线程。这取决于运行时如何选择对它们进行命名。在您的示例中,它选择将它们称为Thread-1Thread-3。大概是因为你继承了Thread的子类,而不是Runnable的子类。结果,您最终得到了四个线程对象,其中只有两个是作为单独的线程运行的。

如果您希望它们被称为其他名称,则可以使用Thread.setName()方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13913424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档