總結經驗
Thread 中的start() 只作兩件事 1:開啓線程 2:調用run方法
調用start和run方法區別?
調用start會開啓線程,讓開啓的線程去執行run方法中的線程任務。直接調用run方法,線程並未開啓,去執行run方法的只有主線程
一 . 第一段代碼分析
1: 繼承線程Thread類,建立子類對象,就是建立線程對象
2: 調用start方法
3: 因爲start被覆蓋並未開啓線程,只是運行run方法
4: run方法打印結果是真正在運行的線程,main...李四...0
5: 打印的是真正的線程main--------------0
因爲demo1,demo2線程未被開啓,只有主線程在執行,demo1,demo2只是執行run方法
運行結果:
二 . 第二段代碼分析
運行結果:
線程內存圖