访问主线程,它是如何工作的?

时间:2015-09-11 10:59:31

标签: java multithreading

请考虑以下代码段

public class ThreadDemo{
    public static void main(String[] args){
        Thread t = Thread.currentThread();
        t.setName("MainThread");
    }
}

我知道每个类都自动扩展java.lang.Object 。此类不扩展或实现任何其他类或接口 我的问题是因为ThreadDemo类没有扩展或实现任何接口或类,包括Thread和Runnable。
我们怎么可能在main方法中使用类 Thread 来访问主线程?
我的意思是它的工作原理???这是关于JVM的东西吗?

3 个答案:

答案 0 :(得分:2)

您正在调用currentThread()的静态Thread方法,该方法返回当前线程(因此名称)。然后你设置它的名字。

这段代码并不神奇(除了currentThread()是一种原生方法)。

答案 1 :(得分:0)

  

JVM如何知道我的意思是主线程而不是任何其他线程?

名称" currentThread"有点用词不当。它可以追溯到大多数计算机只有一个CPU的时间,因此只有一个线程--- 当前线程 - 可以在任何给定时间运行。

在我的笔记本电脑上,可能有八个"当前"线程,在一个大型主机上,可能有一百多个。这些天Thread.currentThread()所做的是返回称为该方法的任何线程的身份。

答案 2 :(得分:0)

currentThread( )Thread类的公共静态成员。它的一般形式是:

static Thread currentThread( )

此方法返回对其调用的线程的引用。

可以使用类名称如下来调用静态方法而无需创建类的实例:

ClassName.staticMethod( ) 

由于currentThread( )是静态成员方法,因此无需创建Thread类的实例即可直接使用它。