Java 並行処理
Javaの並行処理の基礎を学びます。
なぜ並行処理か
シングルスレッドでは、重い処理中にアプリケーションが固まってしまいます。
// シングルスレッド: 重い処理中は何もできない
String data = fetchFromNetwork(); // 3秒かかる
updateUI(data); // その間UIは固まる
// マルチスレッド: 並行して処理
executor.submit(() -> {
String data = fetchFromNetwork();
runOnUiThread(() -> updateUI(data));
});
// UIは応答し続ける
並行処理を使うと、複数のタスクを同時に実行でき、CPUコアを有効活用できます。ただし、データ競合やデッドロックなど、新たな問題にも対処する必要があります。
Thread の基礎
Thread の作成
// 方法1: Runnableを渡す(推奨)
Thread thread = new Thread(() -> {
System.out.println("Running in: " + Thread.currentThread().getName());
});
thread.start();
// 方法2: Threadを継承(非推奨)
class MyThread extends Thread {
@Override
public void run() {
System.out.println("Running");
}
}
new MyThread().start();