您好,登錄后才能下訂單哦!
java中線程的創建方式有哪些,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
1、繼承Thread類創建線程
Thread本身實現了runnable接口,代表一個線程的實例。繼承Thread類需要重寫父類的run方法。調用本身的start方法來開啟一個線程。start方法底層會調用run方法。這邊我寫了ExtendThread類來繼承Thread類,重寫run方法。這樣子ExtendThread就是一個線程類了。接著在測試類中調用start開啟一個線程。
ExtendThread類
實現Runnable接口
ImplCallable類實現了Callable接口
這里我們來看下FutureTask包裝器的結構圖:FutureTask間接實現了Runnable和Future接口,可以對Runnabl進行包裝。進行監測等功能擴展。
4.通過線程池來創建線程。
從上面來看,我們想要一個線程就去創建一個線程,這也實現起來很方便,可是事實上,如果并發數線程變多了,并且每個線程執行時間比較短,這樣就會頻繁的去創建線程資源就會大大降低了系統的性能。通常,我們可以用線程池來解決這個問題,首先,在服務啟動的時候,我們可以啟動好幾個線程,并用一個容器(如線程池)來管理這些線程。
java提供了Executors工具來給開發者創建不同類型的線程池,這里我們簡單講newFixedThreadPool這個方法。(后續我們會深入學習線程池的實現原理。)newFixedThreadPool方法創建了固定容量的線程池這里我初始化10個。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。