Javaでのyieldキーワードの使い方は何ですか。
Javaにおいて、yieldキーワードの使い方は他のプログラミング言語(例:Python)とは異なります。Javaでは、yieldキーワードは主にマルチスレッドの実行を制御するために使用されます。
yieldキーワードの役割は、現在のスレッドの実行を一時停止し、他のスレッドが実行を続行する機会を与えることです。スレッドがyieldメソッドを呼び出すと、そのスレッドは待機キューに配置され、スケジューラに再スケジュールされるのを待ちます。他のスレッドが実行できない場合、その場合は現在のスレッドが続行されます。
yield キーワードを使用すると、スレッド間の連携と協力が実現できます。CPU の実行権をやることで、マルチスレッドプログラムの効率を向上させることができます。
以下は、yieldキーワードを使用した例です。
public class YieldExample implements Runnable {
@Override
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println(Thread.currentThread().getName() + ": " + i);
Thread.yield();
}
}
public static void main(String[] args) {
YieldExample example = new YieldExample();
Thread t1 = new Thread(example);
Thread t2 = new Thread(example);
t1.start();
t2.start();
}
}
上記の例では、私たちは2つのスレッド(t1とt2)を作成し、同じYieldExampleのインスタンスを共有しました。YieldExampleのrunメソッドでは、yieldキーワードを使用して現在のスレッドの実行を一時停止し、他のスレッドに実行を任せます。これにより、t1とt2のスレッドは交互に実行され、各スレッドは5回ずつ出力されます。