四種方式創(chuàng)建線程:
- 繼承Thread類
- 實(shí)現(xiàn)Runnable接口
- 應(yīng)用程序使用Executor框架創(chuàng)建線程池
- 實(shí)現(xiàn)Callable接口
Runnable接口比Thread類的好處:
- Thread類繼承存在單繼承的局限性舟肉,而接口不會(huì)
- 體現(xiàn)數(shù)據(jù)共享的概念(JMM內(nèi)存模型圖)刀荒,代碼可以被多個(gè)線程共享集畅,代碼和數(shù)據(jù)獨(dú)立
- 線程池只能放入實(shí)現(xiàn)Runnable或callable類的線程谤辜,不能直接放入繼承Thread的類
- Runnable實(shí)現(xiàn)線程可以對(duì)線程進(jìn)行復(fù)用岳掐,因?yàn)閞unnable是輕量級(jí)對(duì)象伪嫁,而Thread不行,它是重量級(jí)對(duì)象