ThreadクラスとRunnableインターフェースの長所と短所

  1. Threadクラスを継承することでマルチスレッドを実現できます。
    ただし、この方法には制限があり、Java は単一継承であるため、クラスがすでに親クラスを持っている場合、そのクラスは Thread クラスを継承できません。

  2. ただし、このクラスには、複数のスレッドで同時に実行する必要があるコードがまだいくつかあります。この時どうすればいいでしょうか?
    このクラスへの追加の機能拡張のためにのみ、Java は Runnable インターフェイスを提供します。
    run メソッドはこのインターフェイスで定義されており、実際には、run メソッドは複数のスレッドで実行されるコードを格納するために定義されています。
    したがって、通常は 2 番目の方法がスレッドの作成に使用されます。
    Runnable インターフェイスを実装すると、単一継承の制限を回避できるためです。

  3. マルチスレッドによって実行されるコードの場所はインターフェイスで個別に定義され、他のクラスがその機能を拡張するための前提条件が提供されます。
    Thread クラスがスレッドを記述する場合、内部的に定義された run メソッドも Runnable インターフェイスから取得されるためです。
    Runnable インターフェイスを実装すると、単一継承の制限を回避でき、Thread を継承すると、Thread クラスのオーバーライド メソッドをサブクラス化できるようになります。
    このコピー操作を行う必要がない場合は、スレッド コードの格納場所を定義するためだけに Runnable インターフェイスを実装する方が便利です。
    Runnable インターフェイスは、スレッドによって実行されるタスクをオブジェクトにカプセル化するためです。

おすすめ

転載: blog.csdn.net/qq_41638851/article/details/124694069