t=new Thread(this,"clocky");
t.start();
这是创建新主题的方式,但我不明白为什么会这样做。
答案 0 :(得分:4)
让我们开始看看java doc。你实际上正在调用这个构造函数
public Thread(Runnable target, String name)
target - 此线程调用其run方法的对象 开始。如果为null,则调用此线程的run方法。
名称 - 新主题的名称
这里this
引用您调用它的类的当前对象,就像它在java中的其他地方一样。我确信您的该类实现Runnable
并覆盖run()
方法。那是构造函数参数如何匹配。
答案 1 :(得分:1)
表示您正在使用Runnable
接口中的当前对象run()
方法作为此线程主/启动方法。
答案 2 :(得分:0)
看一看
简单示例
public class Test {
public static void main(String[] args) throws ParseException {
Thread threadOne = new Thread(new Class_1(),"Class_1");
Thread threadTwo = new Thread(new Class_2(), "Class_2");
threadOne.run(); //This run calls run in Class_1
threadTwo.run(); //This run calls run in Class_2
}
}
class Class_1 implements Runnable{
@Override
public void run() {
System.out.println("Class_1 run method");
}
}
class Class_2 implements Runnable{
@Override
public void run() {
System.out.println("Class_2 run method");
}
}
<强>输出强>
Class_1 run method
Class_2 run method
答案 3 :(得分:0)
您必须在当前类中实现 Runnable 接口,并通过在类的构造函数中使用 this 关键字传递当前的runnable对象来初始化线程。
在创建runnable类的实例时必须调用 run 方法,如下面的示例所示。
public class Nool implements Runnable {
Thread t;
public Nool() {
t = new Thread(this, "Nool");
t.start();
}
@Override
public void run() {
System.out.println("NOOL");
}
}
我希望这个解释可以帮助你。