0
私は3つの異なるスレッドを通してメソッドへの呼び出しを繰り返そうとしています。次のようにしかし ...私は私のループの次の反復の間に、私のスレッドを開始した後、彼らはすべてのように何も実行されません終了されるコードは次のとおりです。スレッドが終了するのはなぜですか?
public static void main(String[] args) {
main = new Main();
pollingThread.start();
}
static Thread pollingThread = new Thread() {
@Override
public void run() {
while (isRunning) {
main.poll();
// test the state of the threads
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
};
public void poll() {
if (clientThread == null) {
clientThread = new Thread(new Runnable() {
@Override
public void run() {
//create some objects
}
});
clientThread.start();
}
else if (clientThread.isAlive()) {
// do some treatment
}
if (gestionnaireThread == null) {
gestionnaireThread = new Thread(new Runnable() {
@Override
public void run() {
//create some objects
};
});
gestionnaireThread.start();
}
else if (gestionnaireThread.isAlive()) {
// do some treatment
}
if (marchandThread == null) {
marchandThread = new Thread(new Runnable() {
@Override
public void run() {
// create some objects
};
});
marchandThread.start();
}
else if (marchandThread.isAlive()) {
// do some treatment
}
}
そして、私は状態をテストするいくつかの理由のために私のさまざまなスレッドのうち、実行可能なものとして表示され、2回目の繰り返し、彼らはすべて終了しています... 私は間違っていますか? 私は実際にエラーはありませんが、スレッドは終了していますので、ループがループし続け、スレッドが終了していることを伝えてくれます。
実際、これは多くの役に立ちます。今私は他の問題がありますが、もはやスレッドではありません。迅速な答えをありがとう。 – Sephy