設計模式5 遊戲執行緒和暫停

2021-08-29 02:37:19 字數 664 閱讀 8012

遊戲執行緒的暫停,不需要讓整個執行緒掛起。如果整個執行緒掛起,怎麼恢復?

只需要為run函式的while迴圈內容加乙個條件就行。

一、run函式的while迴圈條件

public void run()     // end while

if (tool.gamestate != 1) // win , fail

system.out.println("== run -3");

}

二、為run函式的while迴圈內容加暫停條件

while (tool.gamestate == 1) 

//其他重新整理

//延時

}

暫停條件的修改,在滑鼠或按鈕事件中實現。

為鍵盤事件,單獨寫乙個類,如果沒有良好的架構,很難調整維護。即使執行正確,很難後續使用。

public class keypro implements keylistener

} public void keypressed(keyevent e)

public void keytyped(keyevent e)

}

這樣乙個暫停功能就做好了,資料不再重新整理,畫面也就沒變化。

方便做遊戲截圖。

多執行緒設計模式 保護性暫停模式

保護性暫停模式就是提供了一種執行緒間通訊能力的模式。如果有乙個執行緒的執行結果需要傳遞給另乙個執行緒,就需要使用保護性暫停模式將兩條執行緒關聯起來。jdk中join方法和future就是使用了此模式實現的。package com.leolee.multithreadprogramming.concu...

設計模式和執行緒設計模式

volatile 可見性和順序性,不保證原子性 單例模式 監控執行緒生命週期的observable 採用乙個observable介面來獲取任務執行的狀態,主要想法是重寫run方法。在任務建立,開始,結束,錯誤時介入乙個方法,用來進行處理。同時維護乙個指示任務狀態的類變數。採用模板設計模式的方式,將具...

執行緒暫停和繼續實現

開啟乙個子執行緒來顯示發動機上的執行時間,如果發動機暫停執行,那麼這個執行緒也會暫停,發動機又開動的時候,執行緒繼續開啟,資料也是連貫著的 timer timer newtimer timertask task newtimertask timer.schedule task,0 這樣的用法只能停止...