创建线程的第二种方式: 实现Runnable接口。

创建线程的第二种方式: 实现Runnable接口。
覆盖run方法
创建Thread对象,将Ruannable接口的子类对象作为构造方法的参数传入
调用start方法开启线程

package day12;

/*
创建线程的第一种方式:继承Thread类。

创建线程的第二种方式: 实现Runable接口。

1,定义类实现Runnable接口。
2,覆盖接口中的run方法,将线程的任务代码封装到run方法中。
3,通过Thread类创建线程对象,并将Runnable接口的子类对象作为Thread类的构造函数的参数进行传递。
    为什么?因为线程的任务都封装在Runnable接口子类对象的run方法中。
    所以要在线程对象创建时就必须明确要运行的任务。
4,调用线程对象的start方法开启线程。
 */
class Demo implements Runnable{ //准备扩展Demo类的功能,让其中的内容可以作为线程的任务执行。
                            //通过接口的形式完成。

    @Override
    public void run() {
        show();
    }

    public void show() {
        for (int x = 0; x <10 ; x++) {
            System.out.println("...x="+x+".....name="+Thread.currentThread().getName());
        }
    }
}

public class ThreadDemo4 {
    public static void main(String[] args) {
        Demo d = new Demo();

        Thread t1 = new Thread(d);
        Thread t2 = new Thread();
        t1.start();
        t2.start();

//        Demo d1 = new Demo();
//        Demo d2 = new Demo();
//        d1.start();
//        d2.start();
    }
}

你可能感兴趣的:(创建线程的第二种方式: 实现Runnable接口。)