同一個Thread不能重複調用start方法,跟線程中狀態有關係線程
1:新生狀態:new()出來,start()以前資源
2. 就緒狀態(Runnable):拿到執行資格,可是沒有執行權(cpu沒有分配資源給它),該狀態位於「可運行線程池中」;一旦得到CPU資源,就進入執行狀態。it
3。執行狀態: 進入運行狀態的線程執行run()線程池
4:休眠:好比Thread.sleep()單位毫秒;經過sleep方法休眠的當前線程不釋放cpu資源,時間到了後繼續執行方法
5:等待:wait(經過notify/notifyAll來喚醒它):當前線程釋放cpu資源,喚醒之後成就緒狀態,從新爭奪cpu資源文件讀取
6:阻塞:通常出如今I/O流裏面(好比文件讀取很大,I/O開銷着時間,可是線程仍是佔用着cpu資源)cpu
7:死亡:線程執行完任務或者被強制性終止,死亡的線程不能再start()了文件