我是线程的新手,在学习它时我无法理解以下内容,
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类的情况下使用线程方法?
答案 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()方法。