gpt4 book ai didi

java - 如何重新启动一个线程?

转载 作者:行者123 更新时间:2023-12-01 22:33:39 26 4
gpt4 key购买 nike

我有两个线程,其中一个在我按下按钮时启动。它仅在按钮 btn.settext(""+ j) 上显示 1-20 之间的值。在该按钮的监听器内我编写了以下内容:

btn_listener.setOnClickLstener(new Listener) {
public void onClickListener(view v) {
if (!t2.isAlive()) {
t2.start()
}
}
}

t2 是一个线程。运行时发生的情况是,当我在 thread2 运行时单击按钮时,什么也没有发生,但是,当 thread2 完成其工作并且我点击按钮时,应用程序崩溃了。有什么原因会发生这种情况吗?

最佳答案

线程无法重新启动。

根据SCJP by Kathy Sierra :

在线程上调用start()方法后,它无法重新启动;它运行直到完成,然后解散,并被视为死​​亡(尽管您仍然可以在其上调用其特定方法,但不能再次调用 start())。

如果第二次调用start(),将会引发异常(IllegalThreadStateException,这是一个RuntimeException)。

关于java - 如何重新启动一个线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27202340/

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