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

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


新しい実行スレッドを作成するには、2つの方法があります。 1つは、クラスをThreadクラスのサブクラスとして宣言することです。このサブクラスは、Threadクラスのrunメソッドをオーバーライドする必要があります。その後、サブクラスのインスタンスを割り当てて開始できます。

スレッドを作成するもう1つの方法は、Runnableインターフェースを実装するクラスを宣言することです。次に、そのクラスはrunメソッドを実装します。次に、クラスのインスタンスを割り当て、スレッドの作成時に引数として渡して、開始することができます。

すべてのスレッドには、識別のための名前があります。複数のスレッドが同じ名前を持つ場合があります。スレッドの作成時に名前が指定されていない場合は、新しい名前が生成されます。

スレッド 実行可能
Sr。いいえ。 キー
1
基本
スレッドはクラスです。スレッドを作成するために使用されます
Runnableは、スレッドを作成するために使用される機能インターフェイスです。
2
メソッド
start()やrun()を含む複数のメソッドがあります
抽象メソッドrun()のみがあります
3
各スレッドは一意のオブジェクトを作成し、それに関連付けられます
複数のスレッドが同じオブジェクトを共有します。
4
メモリ
より多くのメモリが必要
必要なメモリが少ない
5
制限
javaでは多重継承は許可されていないため、クラスがThreadクラスを拡張した後は、他のクラスを拡張できません。
クラスが実行可能なインターフェイスを実装している場合、そのクラスは別のクラスを拡張できます。

実行可能の例

class RunnableExample implements Runnable{
   public void run(){
      System.out.println("Thread is running for Runnable Implementation");
   }
   public static void main(String args[]){
      RunnableExample runnable=new RunnableExample();
      Thread t1 =new Thread(runnable);
      t1.start();
   }
}

スレッドの例

class ThreadExample extends Thread{
   public void run(){
      System.out.println("Thread is running");
   }
   public static void main(String args[]){
      ThreadExample t1=new ThreadExample ();
      t1.start();
   }
}

  1. Javaでの継承と構成の違い

    コンポジションは、クラスがクラスのフィールドとして別のクラスのインスタンスを持つことができる設計手法です。継承は、クラスを拡張することにより、1つのオブジェクトが親オブジェクトのプロパティと動作を取得できるメカニズムです。 構成と継承はどちらも、クラスを関連付けることでコードの再利用性を提供します。コンポジションを使用すると、継承の機能も取得できます。以下は違いです。 Sr。いいえ。 キー 継承 構成 1 基本 継承は「is-a」関係です 構成は「has-a」です。関係 2 コードの再利用 継承では、クラスlassは1つのインターフェースしか拡

  2. Javaでの待機とスリープの違い

    待つ ()-スレッドはこのモニターの所有権を解放し、notify()メソッドまたはnotifyAll()メソッドのいずれかを呼び出して、このオブジェクトのモニターでウェイクアップするのを待機しているスレッドに別のスレッドが通知するまで待機します。次に、スレッドはモニターの所有権を再取得できるようになるまで待機し、実行を再開します。 睡眠 ()-このメソッドにより、現在実行中のスレッドが指定されたミリ秒数の間スリープ(一時的に実行を停止)します。スレッドはモニターの所有権を失うことはありません。現在のスレッドを指定された時間「実行不可」状態にします。 Sr。いいえ。 キー 待つ スリープ