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