首頁  >  文章  >  Java  >  java中多線程的實現

java中多線程的實現

王林
王林轉載
2019-11-28 17:00:292565瀏覽

java中多線程的實現

第一種方式,定義Thread類別的子類別:

//第一种方法
public class MyThread extends Thread {
    @Override
    public void run() {
        String name = getName(); // 获取线程名称
        System.out.println(name); // 输出 Thread-0
    }
}
//第二种方法
public class MyThread extends Thread {
    @Override
    public void run() {
        Thread t = Thread.currentThread(); // 获取当前线程
        System.out.println(t); 	// 下面调用后输出 Thread[Thread-0,5,main]
        System.out.println(t.getName());// 输出 Thread-0
    }
}

java相關影片推薦:java線上學習

開啟多執行緒:

public class demo1Test {
    public static void main(String[] args) {
        MyThread mt = new MyThread();
        mt.start();// 会运行MyThread的run()方法
   }
}

第二種方式,實作Runnable介面:

實作步驟:

1.建立一個Runnable 介面的實作類別

2.在實作類別中重寫Runnable介面的run方法,設定執行緒任務

3.建立一個Runnable介面的實作類別物件

4.建立Thread類別對象,建構方法中傳遞Runnable介面的實作類別物件

##5.呼叫Thread類別中的start方法,開啟新的執行緒執行run方法

public class Runnableimpl implements Runnable {//1.创建一个Runnable 接口的实现类
    @Override
    public void run() {
        for (int i = 1; i <= 20; i++) {// 2.在实现类中重写Runnable接口的run方法,设置线程任务
            System.out.println(Thread.currentThread().getName() + i);
        }
    }
}
public class demo2Test {
    public static void main(String[] args) {
        Runnable run = new Runnableimpl();//3.创建一个Runnable接口的实现类对象
        Thread t = new Thread(run); //4.创建Thread类对象,构造方法中传递Runnable接口的实现类对象
        t.start();//5.调用Thread类中的start方法,开启新的线程执行run方法
        for (int i = 1; i <= 20; i++) {
            System.out.println(Thread.currentThread().getName() + i);
        }	// Thread-0和main开始多线程抢夺cpu
    }
}

#實作Runnable介面建立多執行緒的好處:

##1.避免了單繼承的限制:

一個類別只能繼承一個類,類別繼承了Thread後就不能繼承其他的類別

實作了Runnable接口,還可以繼承其他的類,實作其他介面。

2.增強了程式的擴充性,降低了程式的耦合性

實作Runnable介面的方式,把設定執行緒任務和開啟執行緒任務進行分離

實作類別中,重寫run()方法,用來設定執行緒任務。

建立Thread類別對象,呼叫start()方法,用來開啟新執行緒

sleep( )方法,讓方法睡眠

public class sleepTest {
    public static void main(String[] args) {
        for (int i = 0; i < 20; i++) {
        //使用Thread类的sleep方法,让方法睡眠1秒钟
            try {
                Thread.sleep(1000);//传入的是毫秒值
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println(i);
        }
    }
}
java相關文章教學推薦:

java快速入門

以上是java中多線程的實現的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除