Javaマルチスレッド(一)スレッドの作成
2275 ワード
Javaでスレッドを作成する方法は2つあります
①Threadクラス書き換えrun()メソッドの継承
実行結果:
結果から、
スレッドの起動には、スレッドクラスのstart()メソッドを呼び出し、スレッドを実行可能な状態にする必要があります.スレッドクラスのrun()メソッドは一般的なメソッドであり、単独で呼び出すと新規スレッドは発生しません.2つのスレッドの実行結果から、新しいスレッドはメインスレッドの実行をブロックしません.
②Runnableインタフェース実装run()メソッド
実行結果:
runnableインタフェースを実現するrun()メソッドは、新しいスレッドにはnewのThreadクラスが必要であり、Threadクラスの構築メソッドによって新しいスレッドが作成されます.
両方のスレッドの作成方法は使用できますが、インタフェースを使用して実装するとjava単一継承の問題を回避でき、親クラスを継承すると同時にマルチスレッドの機能を実現できます.
テキストリンク:http://www.cnblogs.com/dolphin0520/p/3913517.html
①Threadクラス書き換えrun()メソッドの継承
/**
* Created by hewenhao on 2020/5/12
* Description -: Thread , run()
*/
public class ExtendsThread extends Thread{
@Override
public void run() {
System.out.println(" id:" + Thread.currentThread().getId() + ", :" + Thread.currentThread().getName());
}
public static void main(String[] args) {
System.out.println(String.format(" id:%s, :%s", Thread.currentThread().getId(), Thread.currentThread().getName()));
ExtendsThread thread1 = new ExtendsThread();
thread1.start();
ExtendsThread thread2 = new ExtendsThread();
thread2.run();
}
}
実行結果:
id:1, :main
id:1, :main
id:9, :Thread-0
Process finished with exit code 0
結果から、
スレッドの起動には、スレッドクラスのstart()メソッドを呼び出し、スレッドを実行可能な状態にする必要があります.スレッドクラスのrun()メソッドは一般的なメソッドであり、単独で呼び出すと新規スレッドは発生しません.2つのスレッドの実行結果から、新しいスレッドはメインスレッドの実行をブロックしません.
②Runnableインタフェース実装run()メソッド
/**
* Created by hewenhao on 2020/5/12
* Description -: Runnable , run()
*/
public class ImplementRunnable implements Runnable{
@Override
public void run() {
System.out.println(String.format(" id:%s, :%s", Thread.currentThread().getId(), Thread.currentThread().getName()));
}
public static void main(String[] args) {
System.out.println(String.format(" id:%s, :%s", Thread.currentThread().getId(), Thread.currentThread().getName()));
Thread thread1 = new Thread(new ImplementRunnable());
thread1.start();
Thread thread2 = new Thread(new ImplementRunnable());
thread2.run();
}
}
実行結果:
id:1, :main
id:1, :main
id:9, :Thread-0
Process finished with exit code 0
runnableインタフェースを実現するrun()メソッドは、新しいスレッドにはnewのThreadクラスが必要であり、Threadクラスの構築メソッドによって新しいスレッドが作成されます.
public Thread(Runnable target) {
init(null, target, "Thread-" + nextThreadNum(), 0);
}
両方のスレッドの作成方法は使用できますが、インタフェースを使用して実装するとjava単一継承の問題を回避でき、親クラスを継承すると同時にマルチスレッドの機能を実現できます.
テキストリンク:http://www.cnblogs.com/dolphin0520/p/3913517.html