做什么"这"意味着在java中进行多线程处理?

时间:2017-04-20 03:27:30

标签: java multithreading

t=new Thread(this,"clocky");
t.start();

这是创建新主题的方式,但我不明白为什么会这样做。

4 个答案:

答案 0 :(得分:4)

让我们开始看看java doc。你实际上正在调用这个构造函数

public Thread(Runnable target, String name)

java doc

  

target - 此线程调用其run方法的对象   开始。如果为null,则调用此线程的run方法。

     

名称 - 新主题的名称

这里this引用您调用它的类的当前对象,就像它在java中的其他地方一样。我确信您的该类实现Runnable并覆盖run()方法。那是构造函数参数如何匹配。

答案 1 :(得分:1)

表示您正在使用Runnable接口中的当前对象run()方法作为此线程主/启动方法。

答案 2 :(得分:0)

看一看

Multithread Basics

简单示例

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");
    }

}

我希望这个解释可以帮助你。