マルチスレッド・実行可能およびスレッド
マルチスレッドの導入
* 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){ for(int i = 0; i <390000; i ++ ){ new Demo(); } for(int 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()メソッドが自動的に実行される