1. 程式人生 > 實用技巧 >JAVA高併發之執行緒的實現方式,含Lamabda表示式

JAVA高併發之執行緒的實現方式,含Lamabda表示式

Java中執行緒實現的方式

在 Java 中實現多執行緒有4種手段:

1.繼承 Thread 類

2.實現 Runnable 介面

3.匿名內部類

4.Lambda表示式實現

實現 Runnable 介面

package ljz;
class MyThread implements Runnable{ // 實現Runnable介面,作為執行緒的實現類
    private String name ;       // 表示執行緒的名稱
    public MyThread(String name){
        this.name = name ;      // 通過構造方法配置name屬性
} public void run(){ // 覆寫run()方法,作為執行緒 的操作主體 for(int i=0;i<10;i++){ System.out.println(name + "執行,i = " + i) ; } } }; public class RunnableDemo01{ public static void main(String args[]){ MyThread mt1 = new MyThread("執行緒A ") ; // 例項化物件 MyThread mt2 = new
MyThread("執行緒B ") ; // 例項化物件 Thread t1 = new Thread(mt1) ; // 例項化Thread類物件 Thread t2 = new Thread(mt2) ; // 例項化Thread類物件 t1.start() ; // 啟動多執行緒 t2.start() ; // 啟動多執行緒 } };

繼承 Thread 類

class MyThread extends Thread{  // 繼承Thread類,作為執行緒的實現類
    private String name ;       //
表示執行緒的名稱 public MyThread(String name){ this.name = name ; // 通過構造方法配置name屬性 } public void run(){ // 覆寫run()方法,作為執行緒 的操作主體 for(int i=0;i<10;i++){ System.out.println(name + "執行,i = " + i) ; } } }; public class ThreadDemo02{ public static void main(String args[]){ MyThread mt1 = new MyThread("執行緒A ") ; // 例項化物件 MyThread mt2 = new MyThread("執行緒B ") ; // 例項化物件 mt1.start() ; // 呼叫執行緒主體 mt2.start() ; // 呼叫執行緒主體 } };

匿名內部類

介面本身是不可以new的,但是通過匿名內部類可以new然後實現介面方法。本質是要實現run方法

public static void main(String[] args) {
  //使用匿名內部類的方式,實現多執行緒
  new Thread(new Runnable() {
    @Override
    public void run() {
      System.out.println(Thread.currentThread().getName() + "新執行緒建立了!");
    }
  }).start();
}

使用Lambda表示式實現多執行緒

public static void main(String[] args) {//使用Lambda表示式,實現多執行緒
  new Thread(() -> {
    System.out.println(Thread.currentThread().getName() + "新執行緒建立了!");
  }).start();
}

Lambda表示式的標準格式

 (引數列表,用逗號隔開)-> {一些重寫方法的程式碼};

Lambda的作用和目的:

簡化匿名內部類的書寫。

Lambda表示式繼續省略(凡是根據上下文可以推匯出來的內容,都可以省略):

  • (引數列表):括號中的引數列表的資料型別,可以省略不寫;
  • (引數列表):括號中的引數如果只有一個,那麼資料型別和小括號( )都可以省略;
  • {一些程式碼}:如果大括號{ }中的程式碼只有一行,就可以省略大括號{ },return和分號。注意:要省略必須三個一起省略。