gpt4 book ai didi

java - 为什么我的线程被终止?

转载 作者:行者123 更新时间:2023-12-02 08:25:20 26 4
gpt4 key购买 nike

我试图通过 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
}
}

由于某种原因,当我测试不同线程的状态时,它们显示为可运行,然后在第二次迭代中,它们全部终止......我究竟做错了什么?我实际上没有错误,但是线程被终止,所以我的循环不断循环并告诉我线程被终止......

最佳答案

我不知道run()方法里面有什么,但是如果注释正确,如果你只是创建一些东西并返回,线程可能会很快终止:从run()返回使线程退出。如果您希望线程存活更长时间,通常您会在其中使用某种 while 循环来测试终止条件。

关于java - 为什么我的线程被终止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4636816/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com