Callable (第三種線程實現方式)
Callable與Runnable的區別 Callable與Runnable的區別
實現方法名稱不一樣
有返回值
拋出了異常
class Thread1 implements Runnable{ @Override public void run() { } } class Thread2 implements Callable{ //1.方法名稱不一樣 2.有返回值 3.拋出了異常 @Override public Integer call() throws Exception { return null; } } java 運行
Callable的使用 Callable線程類的運行,需要依靠FutureTask的封裝,因為Thread類的構造方法只支持Runnable及其子類,於是就需要繼承了Runnable的FutureTast來對Callable子類進行封裝,下面是FurtureTast的繼承關係源代碼:
public class FutureTask {
public interface RunnableFuture {
public class CallableDemo { public static void main(String[] args) throws ExecutionException, InterruptedException { FutureTask futureTask = new FutureTask<>(new Thread2()); new Thread(futureTask).start(); System.out.println(futureTask.get()); } } class Thread2 implements java 運行
———————————————— 版權聲明:本文為CSDN博主「向着五星的方向」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。 原文鏈接:https://blog.csdn.net/qq_69748833/article/details/137127210