對於那些你需要知道的,我正在爲CraftBukkit寫一個插件,它是Minecraft的一個修改版本,我是一個初級java程序員。我有我認爲是一個非常基本的問題。什麼是創建計時器循環的最被動方式?
我想實現一個倒計時,執行方法發送消息給玩家每秒鐘20秒。
顯然,我不能簡單地創建一個循環20秒,因爲該循環會凍結主線程,直到完成,這是不可接受的。 (有很多遊戲代碼正在執行)
有什麼方法可以創建一個循環,以便被動地運行或不停止主線程?
我唯一能想到的是創建一個新線程來運行倒計時。 當然,有一種更簡單的方法可以做到這一點?
所以你不會感到困惑,倒數並不是初始化爲主循環的一部分,它由用戶命令監聽器線性初始化,但其代碼在主循環中執行。我的意思是我需要實際啓動一個檢查時間的循環,因爲這個代碼只執行一次。
對不起,如果我不清楚或有意義。
你在用'Swing'嗎? – 2013-05-08 16:51:12
不,不使用Swing。該util計時器適合我的需要更好謝謝! – cody 2013-05-08 17:03:32
然後你應該在'ScheduledExecutorService'的'java.util.concurrent'包中使用一個非常可靠的API。看看這個例子:http://stackoverflow.com/a/16445807/1981279 – 2013-05-08 17:13:16