[英]Can a Java Thread be alive more than once?
好吧....让我试着用最好的方法解释一下......另外:这是针对我的世界中的mod。 好的,所以我创建了一个线程对象
public static Thread KillThread = new Thread();
然后在我的主要类的构造函数中,当游戏(Mine craft开始)时我会调用它
KillThread = new Thread(new KillAuraThread());
KillAuraThread是作为线程的类的名称..所以我现在创建了一个线程。 是它让我失望的地方线程将运行1秒钟,它不能运行多次,否则将破坏延迟和线程的点。
if(KillAura.enabled && !KillThread.isAlive())
{
System.out.println("Go AURA!");
try
{
KillThread.start();
}catch (Exception e)
{
e.printStackTrace();
}
}
这被称为游戏中的每个刻度,它将发送位置更新等。
现在这里是我遇到问题的地方。 一旦线程启动它就会变为“活着”,当它结束时它就不再“活着”。 但是线程只能启动一次吗? 因为在第一次运行后它不再工作了? 和想法? 链接?
是线程只能启动一次,不能重用Thread对象。
不止一次启动线程永远不合法。 特别是,一旦完成执行,线程可能无法重新启动。 请参阅
java.lang.Thread.start()
无论这个事实如何,都不要使用Thread.State
进行线程生命周期管理。
你是对的,线程只能运行一次,并且多次启动/运行一个线程是非法的 。 你应该考虑使用while
循环来保持你的线程活着。
您应该使用java.util.concurrent
包中的类来定期安排固定任务,而不是直接处理Threads,这显然是您尝试做的事情。 看一下ThreadPoolExecutor
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.