-4

プログラムを実行するたびに、最大優先度の割り当て o スレッド b が原因で実行順序が変更されます。最初に開始し、最初に完了する必要があります。

threadA.setPriority(Thread.MIN_PRIORITY);
threadB.setPriority(Thread.MAX_PRIORITY)
System.out.println("Start Thread A");
threadA.start();

System.out.println("Start Thread B");
threadB.start();

System.out.println("End of main Thread");
4

3 に答える 3

0

2 つのスレッド (それぞれが独自のコアに割り当てられている) を実行する 2 つ以上のコアを持つマシンがある場合 (これは通常の状況です)、スレッドの優先度が影響を与える可能性があります。すべてのスレッドは、シングル コアの最大速度で実行されます。

また、最初にメインスレッドからスレッド A を開始します。次に、スレッド B を開始します。メイン スレッドの速度はどれくらいですか? スレッド A は、スレッド B を開始するよりも速く完了しますか?

実行順序を確保したい場合は、優先順位ではなく結合を使用する必要があります。

Java スレッドの優先順位が影響しないも参照してください。

于 2013-10-02T08:26:40.230 に答える