ホームページ  >  記事  >  Java  >  Javaのスレッドスケジューリングとは何ですか

Javaのスレッドスケジューリングとは何ですか

青灯夜游
青灯夜游オリジナル
2018-12-17 12:33:205262ブラウズ

Java では、単一の CPU で複数のスレッドを特定の順序で実行することをスケジューリングと呼びます。これはマルチスレッドのコアであり、システムのパフォーマンスを最大限に発揮し、CPU リソースを効率的に利用してプログラムを改善できます。実行効率。

Javaのスレッドスケジューリングとは何ですか

通常、優先度の高いスレッドが起動されて実行されている場合は、優先度が最も高い実行可能なスレッドが最初に実行され、アクティブ (実行中) になります。スレッドが使用されると、優先度の高いスレッドがすぐに実行されます。 [推奨関連ビデオ チュートリアル: Java チュートリアル]

スケジュール タイプ

1. 待機と通知

待機 [wait()] と通知 [notify()、notifyAll()] は、同じオブジェクト上で同期されたスレッド間で通信する方法を提供します。

説明:

wait() メソッド: wait() メソッドがオブジェクトに対して呼び出されると、コードを実行しているスレッドは直ちにオブジェクトのロックを放棄し、スレッドを待機状態に移行します。州。

notify() メソッド: これは、同じオブジェクトで wait() を呼び出したスレッドを起動し、スレッドを準備完了状態に移行します。

notifyAll() メソッド: これは、同じオブジェクト上で wait() を呼び出すすべてのスレッドを起動します。

2. 実行と譲歩

Yield() メソッドは、同じ優先度を持つ他のスレッドに実行の機会を提供する、つまり現在実行中のスレッドを移動するために使用されます。スレッドを利用可能な動作ステータスにします。

3. スリープと有効化

nSleep() メソッドは、スレッドを指定した期間一時停止するために使用されます。つまり、現在実行中のスレッドを次の場所に移動します。指定した期間スリープ状態にしてから、実行可能な状態に移行します。例:

Thread.sleep(毫秒数);

スレッド優先度

各スレッドには優先度があり、これは 1 ~ 10 の整数です。数値が大きいほど優先度が高いことを示します。 、優先度が高く、スレッド優先度のデフォルトは 5 です。ほとんどの場合、スレッド スケジューラは、優先順位に基づいてスレッドをスケジュールします (プリエンプティブ スケジューリングと呼ばれます)。

Javaのスレッドスケジューリングとは何ですか

Java スレッドを作成すると、そのスレッドはそのスレッドを作成したスレッドから優先度を継承します。作成後にいつでも setPriority メソッドを使用してスレッドの優先度を変更することもできます。スレッド。 。

要約: 以上がこの記事の全内容です。皆さんの学習に役立つことを願っています。

以上がJavaのスレッドスケジューリングとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。