13-5. スレッド優先度
スレッド優先度
キースレッドの実行時間が長くなるように優先度を調整できます.
迅速な応答が必要なタスクを処理するスレッドの優先度は高くなければなりません.
優先度の指定
優先度は
Threadは作成したThreadから優先順位を継承します
void
ねじの優先度を指定値に変更
int
スレッドの優先度を返します
これは,現在のコンピュータなどのマルチコア環境ではスレッドの優先度に差がないためである.
カーネルがたくさんあるので、1つのカーネルで優先度割り当てを実行するよりも、複数のカーネルで優先度割り当てを実行します.
したがって、Threadに優先度を指定するよりも、
Thread
クラスには、スレッドの実行時間を変更する優先順位というメンバー変数があります.キースレッドの実行時間が長くなるように優先度を調整できます.
迅速な応答が必要なタスクを処理するスレッドの優先度は高くなければなりません.
優先度の指定
優先度は
int
1-10(数値が大きいほど優先度が高くなります)main
メソッドの優先度は5です.Threadは作成したThreadから優先順位を継承します
main
メソッドで生成されたスレッドの優先度は同じ5である.void
setPriority
(int newPriority)ねじの優先度を指定値に変更
int
getPriority
()スレッドの優先度を返します
class ThreadExample {
public static void main(String[] args) {
Thread1 t1 = new Thread1();
Thread2 t2 = new Thread2();
t2.setPriority(7);
System.out.println("t1: " + t1.getPriority());
System.out.println("t2: " + t2.getPriority());
t1.start();
t2.start();
}
}
class Thread1 extends Thread {
public void run() {
for (int i = 0; i < 1000; i++) {
System.out.printf("%s", new String("-"));
for (int x = 0; x < 10000000; x++); // 처리를 지연시키기 위한 빈 반복문
}
}
}
class Thread2 extends Thread {
public void run() {
for (int i = 0; i < 1000; i++) {
System.out.printf("%s", new String("|"));
for (int x = 0; x < 10000000; x++);
}
}
}
t1: 5
t2: 7
-|-|------------------------------------------------------------------------------------------------------------------------------------------------||||----------||||||||||||||||||||||||||||--------------------------------------------------------------||||||||----------------||||||||||||||||--------------||||----------------------------||||||||||||||------------------------------------------------------------|||||||||||||||||||||||...생략
既に優先順位に達していますが、Threedを実行していると見えなくなります.これは,現在のコンピュータなどのマルチコア環境ではスレッドの優先度に差がないためである.
カーネルがたくさんあるので、1つのカーネルで優先度割り当てを実行するよりも、複数のカーネルで優先度割り当てを実行します.
したがって、Threadに優先度を指定するよりも、
PriorityQueue
にジョブを入れ、優先度に従って処理する.Reference
この問題について(13-5. スレッド優先度), 我々は、より多くの情報をここで見つけました https://velog.io/@lhjun1028/13-5.-쓰레드의-우선-순위テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol