教師のマルチスレッドの方法を理解するのに苦労しています。両方の例を示す前に、彼はたくさんの初心者 (私を含むと思います ^.^) を教えていると言わなければなりません。また、私は彼のクラスを訪問していませんが、次のような彼のスクリプトを持っています。
彼は次のようにマルチスレッドを実行しています。
class MyThread implements Runnable {
Thread t;
MyThread() {
t = new Thread(this, "Demo");
t.start();
}
public void run() {
try {
for (int i = 5; i > 0; i--) {
System.out.println("Child-Thread:" + i);
Thread.sleep(1000);
}
} catch (InterruptedException e) {
System.out.println("Child interrupted");
}
System.out.println("Child finished");
}
}
私はそれがよりきれいだと思います:
public class Aufg1 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
MyThread t1 = new MyThread(1);
ScheduledExecutorService executor = Executors.newScheduledThreadPool(5);
executor.schedule(t1, 1, TimeUnit.SECONDS);
}
static class MyThread implements Runnable {
int number;
public MyThread(int number) {
this.number = number;
}
@Override
public void run() {
// TODO Auto-generated method stub
for (int i = 5; i > 0; i--) {
System.out.println("Thread " + number + ": " + i);
}
}
}
}
サイズ 5 の Thread-Pool を使用した理由は気にしないでください。別の演習でそれが必要だったからです。また、この例では、単一の実行に ThreadPool を使用できました。
大きな違いはありますか?さらにクリーンな方法はありますか?ここでは 1 つだけを示しましたが、他にもマルチスレッド化する方法がいくつかあることは知っています。
ありがとう!