1

私がこれを正しく行っているかどうかはわかりません。メッセージを特定の回数書き出すために、新しいスレッドを作成する必要があります。これはこれまでのところ機能していると思いますが、それが最善の方法であるかどうかはわかりません。次に、スレッドの実行が終了した後に別のメッセージを表示する必要があります。それ、どうやったら出来るの ?isAlive() を使用していますか? どうすればそれを実装できますか?

public class MyThread extends Thread {

    public void run() {
        int i = 0;
        while (i < 10) {
            System.out.println("hi");
            i++;
        }
    }

    public static void main(String[] args) {
        String n = Thread.currentThread().getName();
        System.out.println(n);
        Thread t = new MyThread();
        t.start();
    }
}
4

3 に答える 3

5

今まであなたは軌道に乗っています。Thread#joinここで、別のメッセージを表示するために、このスレッドが終了したら、メインスレッドからこのスレッドを呼び出すことができます。InterruptedExceptionメソッドを使用する場合も、を処理する必要がありますt.join

その後、スレッドが終了すると、メインスレッドが続行されますt。したがって、次のようにメインスレッドを続行します。-

t.start();
try {
    t.join();
} catch (InterruptedException e) {
    e.printStackTrace();
}
System.out.println("Your Message"); 

特定のスレッド(ここではメインスレッド)を呼び出すt.joinと、そのスレッドは、スレッドtが実行を完了した場合にのみ、さらに実行を継続します。

于 2012-11-08T16:37:45.493 に答える
1

Threadクラス自体を拡張することは、一般的には良い方法ではありません。

Runnable次のようにインターフェイスの実装を作成する必要があります。

public class MyRunnable implements Runnable {

    public void run() {
        //your code here
    }
}

そして、次のようにそのインスタンスをスレッドに渡します。

MyRunnable r = new MyRunnable();
Thread t = new Thread(r);
t.start();

SO でこの回答を確認してください:ランナブルの実装とスレッドの拡張の比較

于 2012-11-08T16:46:35.770 に答える
0

これがあなたがそれを行う方法です........

class A implements Runnable
{
    public void run()
    {
    for(int i=1;i<=10;i++)
    System.out.println(Thread.currentThread().getName()+"\t"+i+"  hi");
    }
}
class join1
{
public static void main(String args[])throws Exception
    {
    A a=new A();
    Thread t1=new Thread(a,"abhi");
    t1.start();
    t1.join();
    System.out.println("hello this is me");//the message u want to display
    }
}

join のjoin () の詳細を参照してください

于 2012-11-08T16:55:31.430 に答える