Javaマルチスレッド実装入門:基本とサンプルコード
Java で複数のスレッドを実装する方法は2つあります。
- Thread クラスを継承する: Thread クラスを継承したクラスを定義し、run() メソッドをオーバーライドし、run() メソッド内でスレッドのタスクロジックを記述します。次に、そのクラスのインスタンスを作成し、start() メソッドを呼び出してスレッドを開始します。
public class MyThread extends Thread {
public void run() {
// 线程任务逻辑
}
}
public class Main {
public static void main(String[] args) {
MyThread myThread = new MyThread();
myThread.start();
}
}
- Runnableインターフェースを実装する:クラスを作成し、Runnableインターフェースを実装し、run()メソッドを実装すると、run()メソッドにスレッドのタスクロジックを記述します。そのクラスのインスタンスを作成し、Threadクラスのコンストラクタに渡し、start()メソッドを呼び出してスレッドを開始します。
public class MyRunnable implements Runnable {
public void run() {
// 线程任务逻辑
}
}
public class Main {
public static void main(String[] args) {
MyRunnable myRunnable = new MyRunnable();
Thread thread = new Thread(myRunnable);
thread.start();
}
}
上記の2つの方法はどちらもマルチスレッドを実現することができますが、一般的には第二の方法をお勧めします。Javaは単一継承であり、Threadクラスを継承してしまうと他のクラスを継承することができなくなるためです。一方、Runnableインタフェースを実装することでこの問題を回避できます。