ビデオ: Google I/O Extended: Recap Live Japan 2019 #RecapLiveJP 2024
LaunchEventという別のJavaクラスを作成して、起動パッドのフラッディング、イベントの開始、解除などの特定のカウントダウンイベントをトリガするスレッドについては、このクラスでは、スレッドを作成して開始するためのもう1つの手法が使用されています。
Threadクラスを拡張するクラスを作成する際の問題は、クラスが1つのスーパークラスを持つことができることです。あなたのスレッドオブジェクトに他のクラスを拡張させたいのであればどうしますか?その場合、Threadクラスを拡張するのではなく、Runnableインターフェイスを実装するクラスを作成することができます。
<! - 1 - >Runnableインタフェースは、スレッドとして実行可能なオブジェクトをマークします。 runにはスレッド内で実行されるコードが含まれています。 (Threadクラス自体にRunnableが実装されているため、Threadクラスにはrunメソッドがあります)。
Runnableインターフェイスを使用してスレッドを作成および開始するには、以下を行う必要があります。
-
実行可能ファイル。
-
Runnableクラスにrunメソッドを提供します。
<! - 2 - > -
Threadクラスのインスタンスを作成し、Runnableオブジェクトをそのコンストラクタにパラメータとして渡します。
Runnableクラスを実行できるThreadオブジェクトが作成されます。
-
Threadオブジェクトのstartメソッドを呼び出します。
Runnableオブジェクトのrunメソッドが呼び出され、別のスレッドで実行されます。
これらのステップの最初の2つは簡単です。トリックは、いくつかの方法で完了することができるので、3番目と4番目のステップにあります。あなたのRunnableクラスの名前がRunnableClassであると仮定して、ここに一つの方法があります:
<! - 3 - >RunnableClass rc = new RunnableClass();スレッドt =新しいスレッド(rc)。 t。開始();
Javaプログラマは可能な限り簡潔であることが望ましいので、このコードは
Thread t = new Thread(new RunnableClass())のように圧縮されていることがよくあります。 t。開始();
またはこれだけでも:
新しいスレッド(新しいRunnableClass())。開始();
この単一行バージョンは機能します。プログラムの後半でスレッドオブジェクトにアクセスする必要はありません。