我正在編寫一個遊戲,其中玩家在JVM上編寫相互競爭的AI代理。現在的架構如下:確保線程在Java中獲得(大約)相等的CPU時間
- 核心服務器模塊,處理物理模擬,並從玩家的消息作爲輸入來改變世界。核心還根據各種規則(根據戰爭迷霧)從各個角色的角度確定世界的形象。
- 玩家模塊從核心接收世界的更新版本,處理它們,並根據該處理將消息流式傳輸到核心作爲輸入。
這個想法是,核心是與兩個播放器模塊一起編譯,然後運行模擬產生輸出流,可以回放以產生匹配的可視化。
我的問題是,如果每個玩家在單個Java線程上運行,是否可以確保兩個玩家線程獲得相同數量的資源(CPU時間,主要是我認爲的)?因爲我不控制每個人工智能所處理的處理的性質,所以有可能其中一個玩家的效率極低,但是其寫入方式使得其線程消耗瞭如此多的資源,其他玩家的AI資源匱乏並且可以競爭不公平。
我覺得如果沒有硬實時操作系統(JVM甚至沒有接近實際的操作系統),這是不可能的,但如果甚至有一種方法可以相當接近我想探索它。
查看[this](http://www.java-samples.com/showtutorial.php?tutorialid=302)頁面。 –