21.01.20-41日目
🚅 ねじ山
🚋 プロセスとスレッド(process&thread)
👉 プロセス:実行中のプログラム、リソース(リソース)(メモリ.CPU...)設定
👉 ねじ:プロセスで実際の操作を実行します.(プロセスごとに少なくとも1つのスレッドがあります)
👉 シングルスレッドプロセス=リソース+スレッド
👉 マルチスレッドプロセス=リソース+スレッド+スレッド+…+山紅
👉 新しいプロセスを作成するよりも、新しいスレッドを作成するコストが低くなります.
🚋 マルチスレッドのメリットとデメリット
👉メリット:
システムリソースをより効率的に使用します.
ユーザーの応答性が向上しました.
操作が分離され、コードが簡潔
👉欠点:
注同期(synchronization)、
デッドロック(dead lock)が発生しないように注意し、
飢餓問題:各スレッドが効率的かつ均一に動作することを確保
🚋 スレッドの実装と実行
継承
class MyThread extends Thread{
public void run() { // Thread클래스의 run()을 오버라이딩
/* 작업내용 */
}
}
MyThread t1 = new MyThread(); // 쓰레드의 생성
t1.start(); // 쓰레드의 실행
class MyTread2 implements Runnable {
public void run() { // Runnable인터페이스의 추상메서드 run()을 구현
/* 작업내용 */
}
}
Runnable r = new MyThread2();
Thread t2 = new Thread(r); // Thread(Runnable r)
// 한줄로하면 Thread t2 = new Thread(new MyThread2));
t2.start();
🚋 スレッド-start()の実行
ThreadEx1_1 t1 = new ThreadEx1_1();
ThreadEx1_1 t2 = new ThreadEx1_1();
.
t1.start();
t2.start();
🚋 モノフィラメント&マルチフィラメント
🚃 モノレッド
class ThreadTest {
public static void main(String[] args) {
for(int i=0; i< 300; i++)
System.out.print(new String("-"));
}
for(int i=0; i< 300; i++)
System.out.print(new String("|"));
}
}
}
🚃 マルチスレッド
public class ThreadTest {
public static void main(String[] args) {
ThreadEx1 th1 = new ThreadEx1();
ThreadEx2 th2 = new ThreadEx2();
.
th1.start();
th2.start();
}
}
class ThreadEx1 extends Thread {
public void run() {
for(int i=0; i< 300; i++)
System.out.print(new String("-"));
}
}
}
class ThreadEx1 extends Thread {
public void run() {
for(int i=0; i< 300; i++)
System.out.print(new String("|"));
}
}
}
🚋 スレッド優先度
🚋 第3グループ
🚋 ねじ組の方法
🚋 ソース
JAvaの定式書&youtube
Reference
この問題について(21.01.20-41日目), 我々は、より多くの情報をここで見つけました https://velog.io/@ham6482/21.01.20-41일차-qasnpd1zテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol