多线程05/线程的创建和启动2:实现Runnable接口

线程的创建和启动2


多线程的创建

方式二:实现Runnable接口

1.创建一个实现了Runnable接口的类
2.实现类去实现Runnable中的抽象方法: run()
3.创建实现类的对象
4.将此对象作为参数传递到Thread类的构造器中,创建Thread类的对象
5.通过Thread类的对象调用start()

例:遍历0-100的偶数

//创建一个实现了Runnable接口的类
class MThread implements Runnable{
    //实现类去实现Runnable中的抽象方法: run()
    public void run(){
        for (int i = 0;i < 100;i++){
            if(i % 2 == 0){
                System.out.println(i);
            }
        }
    }
}

public class ThreadTest1 {
    public static void main(String[] args) {
        //创建实现类的对象
        MThread mThread = new MThread();
        //将此对象作为参数传递到Thread类的构造器中,创建Thread类的对象
        Thread t1 = new Thread(mThread);
        //通过Thread类的对象调用start()
        t1.start();

    }
}

结果成功运行(部分截图)
多线程05/线程的创建和启动2:实现Runnable接口

再启动一个线程,遍历100以内的偶数

此时不需要重新添加MThread mThread = new MThread();
只添加Thread t2 = new Thread(mThread);即可

//创建一个实现了Runnable接口的类
class MThread implements Runnable{
    //实现类去实现Runnable中的抽象方法: run()
    public void run(){
        for (int i = 0;i < 100;i++){
            if(i % 2 == 0){
                System.out.println(Thread.currentThread().getName()+":"+i);
            }
        }
    }
}

public class ThreadTest1 {
    public static void main(String[] args) {
        //创建实现类的对象
        MThread mThread = new MThread();
        //将此对象作为参数传递到Thread类的构造器中,创建Thread类的对象
        Thread t1 = new Thread(mThread);
        t1.setName("线程1");
        //通过Thread类的对象调用start()
        t1.start();

        //在启动一个线程,遍历100以内的偶数
        Thread t2 = new Thread(mThread);
        t2.setName("线程2");
        t2.start();
    }
}

运行截图(部分)
多线程05/线程的创建和启动2:实现Runnable接口

上一篇:多线程的三种创建方法之实现Runnable接口


下一篇:十一、线程池