相信好多小夥伴都在搜索過創建線程的方式,網上給的說法也是什麼都有(有說兩種的、三種的、四種的、五種的...),這些觀點肯定讓好多小夥伴產生迷惑。那我要說的是:這些答案不能說錯,只能說不對。那我憑什麼這麼說呢?我的根據是Oracle的官方文檔。文檔是最有權威的。
那有的小夥伴可能又有疑問了,那爲什麼其他的不屬於創建線程的方式呢?其實是因爲他們底層都直接或者間接的利用了Thread類或者Runnable接口,我們來分析一下最常見的兩種。
我們先來看Executor方式,話不多說,直接上源碼:
我們可以清晰的看出它底層用了利用了Thread。
那我們再來看一下Callable
我們也可以非常明瞭的看出它也利用了Thread和Runnable