併發編程:線程基礎、JAVA新啓線程的方式

一、簡單描述什麼是進程和線程

1、進程:進程是程序運行資源分配的最小單位。

2、線程:線程是CPU調度的最小單位,必須依賴於進程而存在。

 

二、創建線程的幾種方式

在JDK的源碼Thread類中明確表示,創建線程的方式一共有兩種:

  • 一種是繼承Thread類
  • 另外一種是實現Runnable接口

如下圖Thread類中的描述所示:

具體示例請看如下代碼:

package cn.lspj.ch1.base;

/**
 * 創建線程的方式
 * 1、繼承至Thread類
 * 2、實現Runnable接口
 */
public class NewThread {

    private static class UseThread extends Thread {
        @Override
        public void run() {
            // TODO do my work
            System.out.println("使用 extend Thread 方式創建的線程。。。 ");
        }
    }

    private static class UseRunnable implements Runnable {
        @Override
        public void run() {
            // TODO do my work
            System.out.println("使用 implements Runnable 方式創建的線程。。。 ");
        }
    }

    public static void main(String[] args) {
        UseThread useThread = new UseThread();
        useThread.start(); //啓動線程

        UseRunnable useRunnable = new UseRunnable();
        new Thread(useRunnable).start(); // 啓動線程
    }
}

Thread Runnable 的區別

  • Thread 纔是 Java 裏對線程的唯一抽象。
  • Runnable 只是對任務(業務邏輯) 的抽象。
  • Thread 可以接受任意一個 Runnable 的實例並執行。

特別注意,很多博客,在講創建線程的方式時大部分說是三種,繼承Thread、實現Runnable或者Callable接口,但是從本質上來講Runnable和Callable可以歸爲一類。Callable可以指定返回值和檢查異常處理,而Runnable不能。


備註:博主微信公衆號,不定期更新文章,歡迎掃碼關注。

                                                                    

 

 

 

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