线程运行方法

Asl*_*wer 3 java

我们可以使用直接运行方法,如下面的类所做.它产生与我们使用t1.start();时相同的结果.有没有理由只使用start方法来调用run?

public class runcheck extends Thread{

    public void run(){

        System.out.println(" i am run");

    }
    public static void main(String args[]){

        runcheck as = new runcheck();
        Thread t1 = new Thread(as);
        t1.run();

    }

}
Run Code Online (Sandbox Code Playgroud)

Sot*_*lis 8

是的,但它将在同一个线程中运行.它等同于在普通对象上调用方法.

start()是你想要的.它调用一个native实际生成操作系统Thread来执行run()代码的方法.

  • 是的,运行就是告诉Thread对象从哪里开始执行该线程.通过调用"run",你实际上只是调用一个方法.实现Runnable(或扩展Thread),不会给该方法带来任何魔力. (2认同)