繁体   English   中英

Java Thread可以不止一次存活吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM