关于线程的困惑

时间:2013-09-28 10:39:19

标签: java multithreading

我们可以创建接口的引用,但不能创建对象。但是我们如何将新的Runnable()传递给Thread构造函数。根据我的知识是Concert,新的Class_Name()是对象。

Thread t = new Thread(new Runnable(){});

2 个答案:

答案 0 :(得分:3)

此处使用的技巧称为anonymous classes。基本上,您正在创建一个实现Runnable的新匿名类的对象。

更好的例子是:

Thread t = new Thread(new Runnable(){ 
   @Override
   public void run() {
       // Code here
   }
});

答案 1 :(得分:1)

我们可以创建界面的引用,但不能创建对象

那不是真的。

ClassA classa = new ClassA(); 

这将为ClassA创建一个新实例,而classa是参考。

但是我们如何将新的Runnable()传递给Thread构造函数

Thread t = new Thread(new Runnable(){});

这将创建一个Thread的实例,其中t是引用。新的Runnable(){}称为anonymous class。因为创建了一个实例,所以引用会传递给构造函数,但是您不能在代码中稍后引用它。

但是使用这一行你应该得到一个编译错误。你必须覆盖run方法。

Thread t = new Thread(new Runnable(){
    @Override
    public void run(){
    }
});