Javaはどのようにしてマルチスレッドでタスクを実行しますか?
複数のタスクを実行するために、JavaのThreadクラスとRunnableインターフェースを使用して複数のスレッドを作成できます。
以下は、スレッドとRunnableを使用して複数のスレッドにタスクを実行させる方法を示すサンプルコードです。
public class MyRunnable implements Runnable {
private String name;
public MyRunnable(String name) {
this.name = name;
}
@Override
public void run() {
try {
for (int i = 0; i < 5; i++) {
System.out.println(name + " running " + i);
Thread.sleep(1000);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public class Main {
public static void main(String[] args) {
Thread thread1 = new Thread(new MyRunnable("Thread 1"));
Thread thread2 = new Thread(new MyRunnable("Thread 2"));
thread1.start();
thread2.start();
}
}
このサンプルでは、Runnableインターフェースを実装したMyRunnableというクラスを作成しました。MyRunnableのrun()メソッドの中で、各スレッドが実行するタスクを定義しています。その後、Mainクラスでスレッドオブジェクトthread1とthread2を作成し、引数としてMyRunnableオブジェクトを渡しています。最後に、start()メソッドを呼び出してこの2つのスレッドを起動しています。
コードの実行中は、2つのスレッドが同時にそれぞれのタスクを実行し、各々の出力を表示します。各スレッドは5回ループを実行し、各ループは1秒間隔を空けます。
マルチスレッドを利用する際は、スレッド間の同期や資源の共有に関する問題に注意し、競合状態を避ける必要があります。