Java多线程的2种实现方式

一.继承Thread类

      在写Thread子类时,需要重写父类的run()方法,如下:

package com.lei.java;

public class MyThread extends Thread {
    public  MyThread() {
    }
    //设置线程的名称setName();
    public  MyThread(String name){
        super(name);
    }

    @Override
    public void run() {
        for(int i=0;i<100;i++){
            //获取线程的名称getName()
            System.out.println(getName()+"--"+i);
        }
    }
}

主类:

package com.method.java;

import com.lei.java.MyThread;

public class MyThreadDemo {
    public static void main(String[] args) {
        MyThread my1=new MyThread("第一个");
        MyThread my2=new MyThread("第二个");
        //设置线程的名称setName();
        //my1.setName("第一个");
        //my2.setName("第二个");

        my1.start();
        my2.start();
    }

}

二.实现Runnable接口

用Thread类直接创建线程对象,使用Thread创建线程通常使用的构造方法是:Thread(Runnable target),该构造方法的参数是一个Runnable类型的接口。

在创建线程对象时必须向构造方法的参数传递一个实现Runnable接口类的实例。如下:

package com.runnable;

public class RunnableDemo implements Runnable {
    @Override
    public void run() {
        for(int i=0;i<=100;i++){
            System.out.println(i);
        }
    }
}

主类:

package com.runnable;

public class MyRunnable {
    public static void main(String[] args) {
        //Runnable接口类
        RunnableDemo runnableDemo =new RunnableDemo();
        //Thread(Runnable target)构造方法的参数是一个Runnable类型的接口
        Thread t1 = new Thread(runnableDemo);
        Thread t2 = new Thread(runnableDemo);

        t1.start();
        t2.start();
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章