可以在我的类中使用Thread方法而不扩展Thread Class

时间:2011-06-30 07:38:11

标签: java

我是线程的新手,在学习它时我无法理解以下内容,

public class myClass 
{ 
    public static void main(String args[]) throws InterruptedException
    {
        String[] myString = {"Object","Classes","Static","Final"};
        for(int i=0;i<myString.length;i++)
        {
            System.out.println(myString[i]);
            Thread.sleep(2000);
        }
    }
}

为什么我可以在不扩展Thread类的情况下使用线程方法?

5 个答案:

答案 0 :(得分:4)

睡眠是一种静态方法。它不需要调用实例。

答案 1 :(得分:1)

在Java中只有两种方法可以使类/方法“可线程化”。扩展Thread或实施Runnable。你在做什么的是Thread.sleep(),它只是说睡觉当前线程。

它只是一个由Thread提供的静态方法,并且您发现并不特别与多线程有很大关系。静态方法意味着不需要实例化包含类的对象来调用方法,这就是为什么你可以在不扩展Thread的情况下调用sleep()的原因。

答案 2 :(得分:0)

了解static methods in the Java tutorial。在使用线程之前了解该语言的基础知识。线程很难掌握,如果你不知道静态方法是什么,现在开始使用它们还为时过早,恕我直言。

答案 3 :(得分:0)

这里使用Thread类的astatic成员方法,这就是为什么你可以使用sleep()函数而不需要实例。

答案 4 :(得分:0)

sleep()是'Thread'类的静态方法。您可能知道静态方法是由sysntax

直接调用的
MyClass.myStaticMethod().

您不需要实例化Thread对象来调用sleep()方法。