1. 程式人生 > >多線程實現的3種方式

多線程實現的3種方式

ati run HR size lar -s 執行 runnable 實現

1.繼承thread類,重載run方法

2.實現Runnable接口,重載run方法

3.使用Callable,搭配Future,和ExecutorService實現返回有結果的多線程

前兩種方式都是無返回值的,Thread類的本質也是實現了Runnable接口,代表一個線程的實例,通過thread類的start實例方法(是native方法),將創建一個新線程,並且執行線程的run方法

實現Runnable接口的方式更靈活,如果類已經繼承了別的類,那麽只能通過繼承Runnable的方式來實現

JDK1.5之後引入了Callable有返回值的新特征,配套著ExecutorService線程池接口和Future來使用,可以實現有返回值的多線程,ExecutorService接口提供了一個submit的方法,傳遞一個Callable或Runnable,返回Future,如果Executor後臺線程池還有沒有計算完的Callable,那麽調用Future對象get()方法會阻塞到計算完成

多線程實現的3種方式