1.引子
在java多線程併發編程中,有八大基礎核心。考考你:看看都有哪八大基礎核心呢?它們分別是: 1.建立線程的方式 2.線程啓動 3.線程中止 4.線程生命週期 5.線程相關的方法 6.線程相關的屬性 7.線程異常處理 8.線程安全 今天咱們從第一個基礎核心開始:建立線程的方式
2.考考你
#考考你: 你知道在java編程語言中,有幾種建立線程的方式嗎? #參考以下:網友說法、官方文檔
網友說法:java
官方文檔說法:編程
#說法比較:
在網絡上,關於建立線程的方式。主流的說法有四種:繼承Thread、實現Runnable、線程池、Callable與Future
在官方文檔,關於建立線程的方式。有且僅有兩種:繼承Thread、實現Runnable
#答案:
在java編程語言中,建立線程的方式,咱們以官方文檔爲準,只有兩種。關於說線程池、Callable與Future是項目開發中經常使用的方式,它們的底層其實仍是Runnable。安全
3.繼承Thread
package com.anan.thread.createthread; public class ThreadDemo { public static void main(String[] args) { // 建立線程對象,並啓動 Thread t1 = new MyThread(); t1.start(); } } /** * 繼承Thread方式,建立線程 */ class MyThread extends Thread{ @Override public void run() { System.out.println("繼承Thread方式,建立線程"); } }
執行結果:網絡
4.實現Runnable
package com.anan.thread.createthread; public class RunnableDemo { public static void main(String[] args) { // 建立線程對象,並啓動 Runnable r1 = new MyRunnable(); Thread t1 = new Thread(r1); t1.start(); } } /** * 實現Runnable接口,建立線程 */ class MyRunnable implements Runnable{ public void run() { System.out.println("實現Runnable接口,建立線程"); } }
執行結果:多線程
5.討論分享
#實際開發中,哪種建立線程的方式更好?
1.雖然在java編程語言中,有兩種建立線程的方式:繼承Thread、實現Runnable
2.在實際開發中,推薦使用實現Runnable接口方式,緣由有:
2.1.實現Runnable接口方式,能夠將線程處理業務,與建立線程分離,從而解耦
2.2.實現Runnable接口方式,擴展性更好,由於在java編程語言中,只能繼承一個父類,而能夠實現多個接口
2.3.實現Runnable接口方式,配合線程池使用,有更好的資源利用率和性能併發