1. 程式人生 > >Java執行緒啟動相關知識點

Java執行緒啟動相關知識點

  • JVM啟動時就啟動了至少2個執行緒:主執行緒(執行main函式的執行緒)+負責垃圾回收執行緒
  • 執行緒並不是新建就立即被執行,啟動start()方法後也不是立即執行,需要等待JVM執行緒排程器排程,排程時才執行
  • 執行緒中run()的呼叫在start()內部實現的(而不是程式設計師顯式呼叫)),直接呼叫執行緒的run()方法不是啟動執行緒,只是單純呼叫run()函式,啟動新執行緒必須使用start()方法。run()由執行緒排程器決定何時排程,策略由底層平臺決定,一般是搶佔式
  • 只能對處於新建狀態的執行緒呼叫start()方法,執行緒一旦死亡就不能再呼叫start()使之重新啟動,即一個執行緒只能呼叫一次start(),多次呼叫會丟擲IllegalThreadStateException異常