多線程簡單入門
一.線程和進程有什麼區別?
進程相當於N個線程。例如每個軟件啓動後就相當於一個進程,裏面每個模塊就相當於每個線程。
總結:進程是線程的集合,每一個線程是進程中的一條執行路徑。
二.爲什麼要用多線程?
多線程可以提高程序的效率。
三.應用場景?
分批執行某個任務;迅雷、網盤等多線程下載。
四.多線程的運行狀態?
五.多線程有哪幾種實現方式?
繼承Thread類;實現Runnable接口;使用匿名內部類。均需要重寫run方法。
注:使用run方法時是不能throw拋異常的,需要使用try/catch去捕獲異常。
一般用實現RUnnable接口創建線程比較好,因爲繼承Thread類後不可再繼承,實現Runnable接口後還可以繼承。
- 繼承Thread類。代碼:
運行結果:
注:線程1、2同時執行,根據cup資源隨機分配執行。
2.實現Runnable接口,代碼:
注:運行結果和繼承Thread類類似,實現Runnable接口開啓線程要強轉爲Thread,因爲Runnable接口是Thread的實現類。實現Runnable接口用Thread.currentThread().getName(),currentThread()方法獲取線程對象,getId()獲取線程id是JVM底層分配getName()獲取線程名稱,打印日誌時一定要打印線程id,方便bug查看。
3.使用匿名內部類創建線程,代碼:
運行結果:
注:該博客單純只是學習筆記,如有錯誤希望大佬指出,謝謝。