@ 方法:スレッドは、カスタムカテゴリに由来し、run()メソッドをオーバーライドする: パブリック クラスは、メイン{ 公共 静的 ボイドメイン(文字列[]引数)は{ Tスレッド = 新しい新しいMyThread(); t.start()。// 新しいスレッドを開始 } } クラスは MyThread 拡張スレッド{ @Override 公共 無効RUNを(){ System.out.printlnは( "新しい新しいスレッドを開始!" ); } }
@ 方法二:Runnableを例渡し、スレッドのインスタンスを作成する: パブリック クラスをメイン{ 公共 静的 ボイドメイン(文字列[]引数){ Tスレッド = 新しい新しいスレッド(新しい新しいMyRunnableを()); t.start(); / / 新しいスレッドを開始 } } クラス MyRunnableを実装したRunnable { @Override 公共 無効RUN(){ System.out.printlnは( "新しい新しいスレッド開始!" ); } }
プログラムの利点を達成するために複数のスレッドを作成するには、Runnableインタフェース:
単一継承の制限を回避1.
クラスは唯一のクラスを継承することができ、クラスは、Threadクラスを使用すると、他のインタフェースを実装し、他のクラスから継承することができ、、Runnableインタフェースを実装し、他のクラスに継承することはできません継承します。
プログラムの2の拡張拡張は、プログラムが結合を減少します
セットのタスクと新しいスレッドのスレッド分離を開いて、異なる機能を達成するために、異なるクラス、Runnableインタフェースを通過させることができます。