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();
    }
}

 

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