簡體   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