Java
 Computer >> コンピューター >  >> プログラミング >> Java

JavaのExecutorとExecutorServicesの違い


ExecutorとExecutorServicesはどちらのインターフェースも、Executorフレームワークの一部です。 Java5でリリースされます。

Javaでは、スレッドの作成は非常にコストのかかる操作であるため、毎回新しいスレッドを開始するのではなく、使用可能なスレッドを再利用する必要があります。Executorフレームワークを使用して同じことを実現できます。

エグゼキュータフレームワークは、スレッドプールを使用してタスクを並列に実行します。これは、応答時間とリソース使用率の最適化に役立ちます。 4種類の組み込みスレッドプールを提供します-

  • 固定スレッドプール
  • キャッシュされたスレッドプール
  • スケジュールされたスレッドプール
  • シングルスレッドエグゼキュータ
Sr。いいえ。 キー エグゼキュータ ExecutorServices
1
基本
これは親インターフェースです
エグゼキュータインターフェイスを拡張します
2
メソッド
execute()メソッドがあります
submit()メソッドがあります
3
リターンタイプ
何も返しません。
futureオブジェクトを返します。
4。
実行可能/呼び出し可能
実行可能なオブジェクトを受け入れます。
実行可能と呼び出し可能の両方を受け入れます

ExecutorServiceの例

public class Main {
   public static void main(String args[]) {
      ExecutorService services = Executors.newSingleThreadExecutor();
      Future<?> future = services.submit(new Task());
   }
}
public class Task implements Runnable {
   @Override
   public void run() {
      System.out.println("In Run");
   }
}

エグゼキュータの例

public class Main {
   public static void main(String args[]) {
      Executor executor = Executors.newSingleThreadExecutor();
      executor.execute(new Task());
   }
}
public class Task implements Runnable {
   @Override
   public void run() {
      System.out.println("In Run");
   }
}

  1. Javaでのイテレータと列挙の違い

    IteratorとEnumerationはどちらも、コレクションの要素をトラバースしてアクセスするためのカーソルです。どちらもコレクションフレームワークに属しています。列挙は、コレクションフレームワークのJDK1.2バージョンのJDK1.0およびIteratorで追加されました。 コレクション内の要素への読み取り専用アクセス権があるため、列挙型はコレクション内の構造を変更できません。次の方法があります: * hasMoreElements() * nextElement() 一方、イテレータはコレクション内の要素を読み取って削除できます。以下の方法があります- * hasNe

  2. JavaでのArrayListとHashSetの違い

    HashSetとArrayListはどちらも、Javaコレクションフレームワークの最も重要なクラスの一部です。 以下は、ArrayListとHashSetの重要な違いです。 Sr。いいえ。 キー ArrayList ハッシュセット 1 実装 ArrayListはリストインターフェイスの実装です。 一方、 HashSetは、セットインターフェイスの実装です。 2 内部実装 ArrayListは、その実装のために配列を内部的に実装します。 HashSetは、実装にHashmapを内部的に使用します。 3 要素の順序 ArrayListは、挿入順序、つまり