この記事では主に Java スレッドの優先順位の詳細と例についての関連情報を紹介しますので、必要な方は参考にしてください
Java スレッドの優先順位の詳細と例
オペレーティング システムは、基本的に時分割スケジューリングを使用してスレッドを実行します。システムは、タイムスライスを 1 つずつ分割し、スレッドを複数のタイムスライスに割り当てます。スレッドのタイムスライスが使い果たされると、スレッドのスケジューリングが発生し、割り当てられたタイムスライスの数を待ちます。スレッドは、使用されるプロセッサ リソースの量を決定します。スレッドの優先順位は、スレッドが割り当てることができるプロセッサ リソースの量を決定するスレッド属性です。
Java マルチスレッドでは、優先度は整数変数の優先度によって制御されます。優先度の範囲は 1 から 10 です。優先度が高いほど良いです。
public class Priority { public static void main(String[] args) { Thread t1 = new Mythread(); t1.setName("线程1"); t1.setPriority(1); //设置优先级 Thread t2 = new Mythread(); t2.setName("线程2"); t2.setPriority(10); //设置优先级 t1.start(); t2.start(); } } class Mythread extends Thread{ @Override public void run() { for(int i=0;i<10;i++){ System.out.println(getName()+"执行"+i+"次"); } } }
実行結果:
线程2执行0次 线程2执行1次 线程2执行2次 线程2执行3次 线程2执行4次 线程2执行5次 线程2执行6次 线程2执行7次 线程2执行8次 线程2执行9次 线程1执行0次 线程1执行1次 线程1执行2次 线程1执行3次 线程1执行4次 线程1执行5次 线程1执行6次 线程1执行7次 线程1执行8次 线程1执行9次
システムが最初にスレッド 1 を実行することがわかります。ただし、スレッド 1 が毎回最初に実行されるわけではありません。特に 2 つのスレッド間の優先順位の差がそれほど大きくない場合、スレッドの優先順位は基本的にほとんど影響しません。オペレーティング システムは Java スレッドの優先順位の決定を完全に無視できるため、プログラムの正確性に関してスレッドの優先順位に依存することはできません。
以上がJava スレッドの優先順位の例の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。