スレッドを作成するには、3つの方法

3つの方法のスレッドを作成します。

(1)Threadクラスの継承

(2)Runnableを実装

(3)呼び出し可能インタフェースを実装

コード例:

1、継承Threadクラス

1  パッケージcom.sxt.thread;
 2  
。3  / ** 
4  * @ClassName StartThread
 。5  *スレッド・システムの作成:
 6  * 1.作成:スレッドを+継承RUNを上書き
 。7  * 2.スタート:サブクラスオブジェクトスタート+を作成する
 。8   * / 
9  パブリック クラスは StartThread 延びている糸を{
 10  
11      / ** 
12である      * @descriptionスレッドのエントリーポイント
 13である      * @date 2019年7月23日16時04分
 14       * @Param []
 15       * @return 空隙
 16       * * / 
17      @Overrideは
 18      公衆 ボイドRUN(){
 19。         ためのint型 I = 0; Iは、20 <であり; Iは++ ){
 20である              ( "音楽を聴きながら"のSystem.out.println ;)
 21である         }
 22である     }
 23である 
24      公共 静的 ボイドメイン(文字列[]引数) {
 25          // サブクラスオブジェクト作成
26          StartThread ST = 新しい新しいStartThreadを();
 27          //は開始
28          (st.startを); // 、すぐに実行することが保証CPUによって呼び出されていない
 29          // )(st.run; // 共通メソッド呼び出し
30          のためのint型0 = I、I 20は、<; I ++は){
 31である              のSystem.out.println( "コードライト側" );
 32          }
 33      }
 34 }

2、Runnableを実装

1  パッケージcom.sxt.thread;
 2  
。3  / ** 
4  * @ClassName StartThread
 。5  *糸道を作成する:
 6  * 1.作成:Runnableを+リライタブルRUNを達成する
 。7  * 2.スタート:スレッドオブジェクトを実装するオブジェクトクラスを作成+ +開始
 8。 * 
 9  *推奨:優先インターフェース使用して、単一継承の制限を回避
 10  *共有リソースを容易にする
 。11   * / 
12である パブリック クラス StartRun 実装Runnableを{
 13である 
14      / ** 
15       * @descriptionスレッドのエントリーポイントは
 16       * 2019- @date 16:04 07から23
 17       @Paramは、[] *
 18である      * @return空隙
 19       * * / 
20である     @Override
 21は     公共 ボイドRUN(){
 である22          のためにint型、I 20は、<; I = 0 Iは++ ){
 23である              のSystem.out.println( "音楽を聴きながら" );
 24          }
 25      }
 26である 
27      パブリック 静的 ボイドメイン(文字列[]引数){
 28          / * 
29          //は、実装クラスのオブジェクトを作成し
 30          StartRun新しい新しいStartRun SRを=();
 31れる         //プロキシクラスオブジェクトの作成
 32を         スレッド新しい新しいTスレッド(SR)を=;
 33である         //スタート
34          t.startは(); CPUを呼び出すことで、すぐに実行する保証はありません//
 35          * / 
36          // オブジェクトは一度だけ使用されている場合は、使用して作成することができ、匿名
37          新しい新しいスレッド(新しい新しいスタートStartRun())();
 38は         // st.run(); // 一般的な方法は、コール
39          のためにint型 I = 0; I ++は、I 20は、< ){
 40              のSystem.out.println( "コードライト側" );
 41          }
 42      }
 43 }

要約:

  例:

  • ターゲットとするユーザーを作成します。IDownloader idは=新しいIDownloader( "ピクチャーアドレス"、 "baidu.png");
  • +ターゲット・オブジェクトに関連付けられたスレッドオブジェクトの作成:スレッドt =新しいスレッド(ID)を。
  • スレッドを起動します。t.startを()

3、呼び出し可能インターフェースを実装

1  パッケージcom.sxt.thread;
 2  
。3  インポート。java.util.concurrentの* ;
 4  
。5  / ** 
6  *スレッド3を作成する方法を理解する:(JUC)
 7。 *呼び出し可能インターフェイスメソッドをオーバーライド呼び出す実装
 8  *
 9   * / 
10  パブリック クラス CDownloader 実装呼び出し可能<ブール> {
 11  
12である     プライベート、文字列のURL // リモートパス
13は、     プライベート文字列名; // 店舗名
14  
15      公衆CDownloader(URL文字列、文字列名){
 16          する.url = URL;
17          この .nameの= 名前;
18      }
 19  
20      @Override
 21      公共ブールコール()スロー例外{
 22  
23          WebDownloader WD = 新しいWebDownloader()。
24          wd.download(URL、名);
25          のSystem.out.println( "图片名称" + 名)。
26          リターン 27      }
 28  
29      公共 静的 ボイドメイン(文字列[]引数)スローExecutionException、InterruptedExceptionある{
 30  
31          CDownloader CD1 = 新しい CDownloader( "https://res.vmallres.com/pimages/detailImg/2019/06/03/20190603145749911985.jpg"、 "20190603145749911985.jpg" )。
32          CDownloader CD2 = 新しい CDownloader( "https://res.vmallres.com/pimages/detailImg/2019/06/03/201906031457493181984.jpg"、 "201906031457493181984.jpg" )。
33          CDownloader CD3 = 新しい CDownloader( "https://res.vmallres.com/pimages/detailImg/2019/06/03/201906031457505691446.jpg"、 "201906031457505691446.jpg" )。
 
                  
37          ExecutorServiceののSER = Executors.newFixedThreadPool(3 )。
38          // 3.提交执行:
39          フューチャー<ブール>結果1 = ser.submit(CD1)。
40          フューチャー<ブール>結果2 = ser.submit(CD2)。
41          将来<ブール> result3 = ser.submit(CD3)。
42          // 4获取结果:
43          ブール R1 = result1.get()。
44          ブール R2 = result2.get()。
45の         ブール R3 = result3.get()。
46          のSystem.out.println(R3)。
47          // 5.关闭服务:
48         ser.shutdownNow();
49      }
 50 }

 

おすすめ

転載: www.cnblogs.com/116970u/p/11233165.html