RunnableとCallableの違いは何ですか



What Is Difference Between Runnable



同じ点:

  • すべてのインターフェースですか
  • マルチスレッドプログラムを作成できます
  • どちらもThread.start()を使用してスレッドを開始します

差:



  • Runnableインターフェイスのrunメソッドには戻り値がなく、Callableインターフェイスのcallメソッドにはジェネリック型の戻り値があります。
    画像
    画像
    注:Callableインターフェースは、実行結果の返送をサポートしています。取得するには、** FutureTask.get()**を呼び出す必要があります。このメソッドは、メインプロセスの実行の継続をブロックします。あなたがそれを呼び出さない場合、それはブロックされません:
    画像
  • Runnableインターフェイスのrunメソッドは、ランタイム例外をスローすることしかできず、キャプチャして処理することはできません。 Callableインターフェイスのcallメソッドを使用すると、例外をスローでき、例外情報を取得できます。