程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> 調整配置實現對Java的應用性能優化

調整配置實現對Java的應用性能優化

編輯:JAVA編程入門知識
  Robocode的每個機器人都是一個線程,線程調度為非強占式,由戰斗治理線程依次調度運行。每個線程執行到一個阻塞函數的時候,交出cpu占用權。對於AdvancedRobot,阻塞函數是excute()。
  
  從這個角度而言,可以把robocode看作是回合制的游戲,每個回合各個robot設定要做些什麼操作,即調用setXXX(),調用excute()完成本回合的操作設定。各個robot都設定完後,戰斗模擬模塊模擬執行各個robot的動作,並且在屏幕顯示結果。下個回合,robot線程在excute()下面繼續執行,直到再次調用excute()為止。
  
  不過,setXXX()設定的操作,往往是在一個回合中執行不完的。在robocode中,一個回合是游戲中的一個時間單位,各個元素的運動都有一定的速度,需要一定單位的時間才能完成。假如上回合中設置的動作還沒有完成,本回合又重新設定了,就會把新動作覆蓋舊動作。
  
  事件處理函數onXXX(),看起來是在事件發生的時候立即執行的,其實不然,還是要在回合中輪到這個robot的時候才能執行。而且若在隊列中有多個事件,而某個事件處理函數調用了excute()結束了本回合的動作,那麼剩下的事件就要等到下個回合才能處理了。因此,onXXX()改變的只是某個線程內部的執行次序,並不改變robot線程之間的執行次序。
 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved