1.爲何要從新Thread安全
由於Thread的run()方法是空的,若是須要執行本身的內容,須要繼承Thread而後重寫run方法多線程
2.爲何新線程調用run不能開啓多線程線程
由於多線程啓動是使用start()方法開啓的,而不是使用run()方法。對象
經過getCurrentThread().getName()能夠得知調用run()方法是單線程執行的。blog
3.線程狀態圖繼承
4.使用Runnable建立線程的好處get
1>.讓實現類的任務抽象出來,2>.讓對象能夠實現非線程類的繼承。it
5.線程安全的問題產生和問題解決變量
1>.產生的緣由是 多線程在操做共享的數據,操做共享數據的代碼有多條。方法
2>.使用synchronized來解決。加鎖必定得使用成員變量,不能使用局部變量(能夠從堆棧的角度理解)