Javaマルチスレッド01

マルチスレッド・実行可能およびスレッド

マルチスレッドの導入

* A:スレッドとは
  *スレッドはプログラム実行のパスであり、プロセスには複数のスレッドを含めることができます
  *マルチスレッドの同時実行はプログラムの効率を向上させ、同時に複数のタスクを完了することができます

* B:マルチスレッドアプリケーションのシナリオ
  * Starscreamは同時に複数のコンピューターと画面を共有します
  * Thunderは複数のスレッドをオンにして一緒にダウンロードします
  * QQは複数の人と同時にビデオを
  送信します*サーバーは複数のクライアント要求を同時に処理します

 

マルチスレッド並列処理と同時実行の違い

*並列とは、2つのタスクが同時に実行されている場合、つまり、タスクAが実行されている間、タスクBも同時に実行されている場合(マルチコアCPUが必要)

*同時実行性とは、両方のタスクの実行が要求されていることを意味し、プロセッサは1つのタスクしか受信できないため、2つのタスクが順番に実行されるようにスケジュールされます。短い時間間隔のため、ユーザーは両方のタスクが同時に実行されていると感じます

*例:2人のネチズンとチャットし、1台のコンピュータを左手で操作し、別のコンピュータを右手で操作することをパラレルと呼び
  ます* 1台のコンピュータを使用してメッセージを1人に送信し、このコンピュータを使用して別の人にメッセージを送信する場合、これは並行性

 

Javaプログラム実行およびJVM起動の原理

* A:Javaプログラム操作の原理
  * JavaコマンドはJava仮想マシンを起動します。JVMを起動することは、アプリケーションを起動すること、つまりプロセスを起動することと同じです。
  *プロセスは自動的に「メインスレッド」を起動し、メインスレッド領域が呼び出されますクラスのメインメソッド

* B:JVMの起動
  * JVMの起動は、少なくともガベージスレッドとメインスレッドを開始するため、マルチスレッド化されます。

package com.heima.thread; 

public  class Demo1_Thread {
     // JVMがマルチスレッドであることを証明し
    ますpublic  static  void main(String [] args){
         forint i = 0; i <390000; i ++ ){
             new Demo(); 
        } 
        forint i = 0; i <10000; i ++ ){ 
            System.out.println( "I am the execution code of the main thread" ); 
        } 
    } 
}} 

class Demo { // ガベージクリーンアップスレッド
    @Override
     public  void finalize()throwsThrowable { 
        System.out.println( "Trash has clean up" ); 
    } 
}

 

 

スレッドはマルチスレッドを実装します

* A:スレッドを継承する
  *クラス継承スレッドを定義する
  * run()メソッドを書き換える* run()メソッドで
  行う新しいスレッドを書き込む
  *スレッドオブジェクトを作成する
  *新しいスレッドを開始する、内部run()メソッドが自動的に実行される

 

おすすめ

転載: www.cnblogs.com/zhaochuming/p/12722082.html