-3
Thread thread = new Thread("New Thread") 
{
    public void run(){ 
       //instructions A,B and C
    }
};

thread.start();
//instructions D, E

命令A、B、Cの終了後にDとEが実行されないのはなぜですか。命令A、B、Cの終了後にDとEを実行するにはどうすればよいですか。

4

4 に答える 4

4

命令A、B、Cの終了後にDとEを実行する方法

ええと、新しいスレッドでA、B、Cを実行しませんか?新しいスレッドを開始することの全体的なポイントは、新しいスレッドのメソッドが実行されている間、現在のスレッドが他のコードを実行できることです。run()

DとEの前に電話をかけることができthread.join()ます...しかし、なぜあなたはそれをしたいのですか?

コードをA、B、C、D、Eの順序で実行するだけの場合は、現在のスレッドですべてを実行します。

于 2012-07-21T22:32:01.300 に答える
1

1. A、B、およびCの完了後にDおよびEを実行する場合は、を使用する必要があります join()

2.スレッドでjoin()が呼び出されると、そのスレッドが終了するのを待って(つまり、run()メソッドを終了する)、join()の後に行を実行します。

3.CountDownLatch from java.util.concurrentパッケージを使用する方が良いです。

于 2012-07-21T22:37:16.807 に答える
0

スレッドは並行して実行されます(少なくとも大まかに)。したがって、スレッドが命令A、B、およびCを開始するときは、命令DおよびEと並行して実行されます。それが望ましくない場合は、そもそも別のスレッドを使用しないでください(少なくともこれが最も簡単なオプションです)。

于 2012-07-21T22:32:23.280 に答える
0

後で実行する場合は、スレッドを使用してA、B、およびCを実行しないでください。

特定の注文が必要な場合、なぜスレッドを使用しているのですか?

于 2012-07-23T02:34:00.690 に答える