繁体   English   中英

从在线程中实现 Runnable 接口创建对象 - Java

[英]Create object from implement Runnable interface in threading - Java

我是 Java 和线程的新手。

将可运行对象创建为RunnableThreadState有什么不同:

class ThreadState implements Runnable {

  public void run() {
    System.out.println("xxxxx");
  }
  public static void main(String args[]) {
    Runnable r1 = new ThreadState();
    Thread t1 = new Thread(r1);
    t1.start();
  }
}

class ThreadState implements Runnable {

  public void run() {
    System.out.println("xxxxx");
  }
  public static void main(String args[]) {
    ThreadState r1 = new ThreadState();
    Thread t1 = new Thread(r1);
    t1.start();
  }
}

谢谢!

在您的代码中, r1既不是Runnable也不是ThreadState

它只是对该类型对象的引用。

在这两种情况下,通过执行new ThreadState()您创建了一个ThreadState实例,它也是Runnable的一个实例。

因此,您的代码片段是等效的。

public class ThreadState implements Runnable 
{
  @Override
  public final void run() 
  {
    System.out.println( "xxxxx" );
  }

  public static final void main( String... args ) 
  {
    Runnable r1 = new ThreadState();
    if( r1 instanceof ThreadState ) System.out.println( "r1 is ThreadState" ); // will be printed
    Thread t1 = new Thread( r1 );
    t1.start();
  }
}

对比

public class ThreadState implements Runnable 
{
  @Override
  public final void run() 
  {
    System.out.println( "xxxxx" );
  }
  public static final void main( String... args[] ) 
  {
    ThreadState r1 = new ThreadState();
    if( r1 instanceof Runnable ) System.out.println( "r1 is Runnable" ); // will be printed
    Thread t1 = new Thread( r1 );
    t1.start();
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM