まず、マルチスレッドの実装を継承します
Rabit.java
パッケージcn.thread; / * *アナログ兎 * 1マルチスレッドスレッド+継承重量ラン(スレッド本体)を作成 * / パブリック クラス RABITをザが延びるスレッド{ @Override 公共 ボイドランを(){ ため(int型 I = 0。 I <100; Iは++ ){ するSystem.out.println( "ウサギのラン" + i "はステップを" + ); } } } クラス亀延びスレッド{ @Override 公共 ボイドランを(){ ため(int型、Iは<I = 0を100; I ++){ System.out.println( i "はステップを" + "を亀が実行" ); } } }
RabitApp.java
パッケージcn.thread; パブリック クラスRabitApp { 公共 静的 ボイドメイン(文字列[]引数){ // 1.サブクラスオブジェクト作成 RABITのRAB = 新しい新)(RABITと、 亀のTor = 新しい新亀(); // 2.通話開始()メソッド rab.start(); tor.start() のために(int型 I = 0、I 1000 <; I ++は){ するSystem.out.println( "メイン- " + I); } } }
効果
マルチスレッド化を達成するために2つ、、Runnableインタフェース
継承と比較すると:
1.静的剤(StaticProxy)
StaticProxy.java
パッケージcn.thread; / * *静的プロキシデザインパターン * 1の実際の役割 * 2は、真のエージェントの役割は、キャラクタ参照保持 * 3、実装同じインタフェースの両方 * / パブリック クラスStaticProxy { 公共 静的 ボイドメイン(文字列[ ]引数){ // 実際の役割を作成し 、あなたが= Y- 新しい新しいあなたを(); // プロキシ役割作成 WeddingCompany会社= 新新WeddingCompany(y軸)を、 Company.marry(); } } // インターフェイスの インターフェイスは、結婚{ パブリック 抽象 ボイド(結婚); } //実際の文字 クラスあなたは実装が結婚{ @Override 公共 ボイド(){結婚 するSystem.out.println(「結婚」;) } } // プロキシ役割の クラスを WeddingCompany 実装が結婚{ プライベートはあなたと結婚、 公共WeddingCompany(){ } 公共WeddingCompany {(あなたと結婚) この。あなた= ;あなた } プライベート 空間を{()の前 のSystem.out.println( "配置さpigsties ..." ;) } プライベート ボイド(){後 のSystem.out.println( "收拾猪窝...." )。 } @Override 公共 ボイド{)(結婚 (前)。 you.marry(); ()の後に、 } }
効果: