Thread_basic01
12980 ワード
TREAD正義を助けるための文章..。
実行中のプログラムはPROSSSプロセスと呼ばれます.しかし、この1つのプログラムの内部には、2つ以上のプログラムフローを形成することができる.
単純な双方向コミュニケーションの1:1プログラムでは、2つのスレッド(プログラムフロー)を使用する必要があります.threadの意味はオブジェクトではなく「線」であり、プログラムフロー/線であると仮定します.
main上で既に実行されている場合は、基本的に単一スレッドが生成されていることを意味します.
ねじ生成時の実行順序 public class Ex1 {
public void printLoop(){
new Thread( ()-> {
for (int i = 0; i < 100; i++) {
System.out.println(Thread.currentThread().getName()+": "+i);
}
}).start();
}
public static void main(String[] args) {
Ex1 obj = new Ex1();
obj.printLoop();
obj.printLoop();
obj.printLoop();
System.out.println("end.........................");
}
}
せきぶんprintLoopのThread Number-連絡i
せきぶんmainの最後のコードはend printです
結果コンソールウィンドウ
動作順序
1.mainからobjへ.printLoopからThread 0 forループを開始
2.mainからobjへ.printLoopからThread 1 forループを起動
3.mainからobjへ.printLoopからスレッド2を起動
4. end.... しゅつりょく
5.出力結果
6.すべてのobj.printLoop終了後システムを閉じる
解析
public class Ex1 {
public void printLoop(){
new Thread( ()-> {
for (int i = 0; i < 100; i++) {
System.out.println(Thread.currentThread().getName()+": "+i);
}
}).start();
}
public static void main(String[] args) {
Ex1 obj = new Ex1();
obj.printLoop();
obj.printLoop();
obj.printLoop();
System.out.println("end.........................");
}
}
Threedの特徴
Java仮想マシンはThreedの実行をスケジュールします.
スケジューリングの基本原則
スレッドはオペレーティングシステムに依存します.このプロパティは、仮想マシンが実行するオペレーティングシステムによって異なる実行結果をもたらす可能性があります.
ネットワークを介したデータの送受信も、CPU割り当てを必要としないデータのI/Oに相当する.プログラム実ストリームを担当するスレッドでも,CPU割当てを必要としないデータのI/Oに関する多くの演算が処理されると考えられる.
この場合(CPUのI/O割り当てが不要な場合)
Threedは無理にCPUを占有したくない.
逆に、この場合、自分に割り当てられたCPUを他のスレッドに渡す.
出典:Javaを習ったことがありません.
Threadの使い方
1.extends Thread、継承
オブジェクト1:Thread 1
1.1 Thread継承public class Test extends Thread {
1.2 run()メソッドオーバーフロー@Override
public void run(){
super.run();
}
1.3 start()呼び出し public static void main(String[] args) {
Test t = new Test();
t.start();
System.out.println("end");
}//main end
public class Test extends Thread {
@Override
public void run(){
super.run();
}
public static void main(String[] args) {
Test t = new Test();
t.start();
System.out.println("end");
}//main end
2.implements Runnable,インタフェース
オブジェクト1:Threadマルチ
2.1インタフェース実装
public class Test2 implements Runnable {
2.2 run()メソッドオーバーフロー public void run() {
System.out.println("i'm "+Thread.currentThread().getName());
}
2.3 Threadオブジェクトの作成(2種類) public static void main(String[] args) {
Thread t1 = new Thread(new Test2());
Thread t2 = new Thread(new Test2());
Runnable runnable = new Test2();
Thread t3 = new Thread(runnable);
2.4 start()呼び出し t1.start();
t2.start();
t3.start();
System.out.println("end...");
} //main end
結果考えなければならないこと
Reference
この問題について(Thread_basic01), 我々は、より多くの情報をここで見つけました https://velog.io/@yeonnie/Threadbasic01テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol