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

cheduledThreadプールとシングルスレッドエグゼキュータの違い。


Sr。いいえ。 キー スケジュールされたスレッドプール シングルスレッドエグゼキュータ
1
基本
指定された遅延後に実行するコマンド、または定期的に実行するコマンドをスケジュールできるスレッドプールを作成します。
タスクは順番に実行されることが保証されており、常にアクティブになるタスクは1つだけです。
2
キュー
タスクを保存するために遅延キューを使用します。時間遅延に基づいてタスクをスケジュールします。


ブロッキングキューを使用します。


3
スレッドの有効期間
アイドル状態であっても、プールに保持するスレッドの数
タスクが原因で強制終了された場合は、スレッドを再作成します。
4。
スレッドプールサイズ
常にシングルスレッドが実行されています。
スレッドプールはゼロスレッドからInteger.MAX_VALUEに拡張できます
5。
ユースケース
並行タスクを制限したい場合は、fixedthreadpoolを使用する必要があります
このタイプのプールは、Task1が常にtask2の前に実行されるようにする場合に使用できます。

ScheduledThreadPoolの例

public class ScheduledThreadPoolExample {
   public static void main(String args[]) {
      ScheduledExecutorService services = Executors.newScheduledThreadPool(10);
      services.schedule(new Task(), 10, TimeUnit.SECONDS);
      services.scheduleAtFixedRate(new Task(), 15, 10, TimeUnit.SECONDS);
      //(new Thread(new Main())).start();
   }
}
public class Task implements Runnable {
   @Override
   public void run() {
      System.out.println("In Run");
   }
}

SingleThreadExecutorの例

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");
   }
}

  1. Javaでのスレッドとランナブルの違い

    新しい実行スレッドを作成するには、2つの方法があります。 1つは、クラスをThreadクラスのサブクラスとして宣言することです。このサブクラスは、Threadクラスのrunメソッドをオーバーライドする必要があります。その後、サブクラスのインスタンスを割り当てて開始できます。 スレッドを作成するもう1つの方法は、Runnableインターフェースを実装するクラスを宣言することです。次に、そのクラスはrunメソッドを実装します。次に、クラスのインスタンスを割り当て、スレッドの作成時に引数として渡して、開始することができます。 すべてのスレッドには、識別のための名前があります。複数のスレッドが同じ

  2. Javaでの例外とエラーの違い

    例外とエラーはどちらもThrowableクラスのサブクラスです。このエラーは、主にシステムリソースの不足が原因で発生する問題を示しており、アプリケーションはこれらのタイプの問題をキャッチするべきではありません。エラーの例としては、システムクラッシュエラーやメモリ不足エラーなどがあります。エラーは主に実行時に発生し、チェックされていないタイプに属します。 例外は、実行時およびコンパイル時に発生する可能性のある問題です。これは主に、開発者によって作成されたコードで発生します。例外は、チェックされた例外とチェックされていない例外などの2つのカテゴリに分類されます。 Sr。いいえ。 キー