t1.current线程和thread.currentThread有什么区别?

时间:2018-07-23 11:53:44

标签: java

这是Java语言的编码问题。

请问选项A和B有什么区别?

Thread T1; 
Option A: t1.currentThread();
Option B: t1 = Thread.currentThread(); 

编译器给出选项A的错误。

1 个答案:

答案 0 :(得分:0)

  

请问选项A和B有什么区别?

一件事有不同的方式。

  

编译器给出选项A的错误。

编译器显示错误Variable 'threa' might not have been initialize。因为您没有初始化Thread t1。尝试下面的代码以更好地理解。

        Thread threa = new Thread(new Runnable() {
                @Override
                public void run() {
                    // your thread work
                }
            });
            threa.start();
            threa.currentThread();

现在您可以在 Thread Documentation 中看到。 currentThread类中的Thread方法是 static

  

返回对当前正在执行的线程对象的引用。

如果您以正确的方式调用Thread.currentThread()来调用静态方法。如果调用t1.currentThread();,则从实例/对象中调用静态方法是冗余

因此上述代码是多余的,您可以通过 Thread class 进行调用。

Thread.currentThread();