我还是新来的java运行这段代码现在连续运行1000次所以它的mutch可能更有效率来运行它多线程,但我不知道什么是什么最好的办法是给分数回主线程java从连续运行1000次的程序运行到muli线程
private int StartGameRandom(EntityManager managerOrg, UserInput input)
{
EntityManager manager = managerOrg.cloneState(managerOrg);
int playerId = 0;
int score = 0;
//get the player id from the player that has to play
ArrayList<Entity> tempState = manager.getAllWithComponents(PhaseComponent.class);
if (tempState.isEmpty())
System.err.println("ScoreSystem.addScorePlayer noPlayerComponent found");
Entity state = tempState.get(0);
PhaseComponent sComponent = (PhaseComponent) state.getComponent(PhaseComponent.class);
playerId = sComponent.getPlayerId();
SetPlayersToRandom(manager);
new PhaseSystem(manager, input);
ArrayList<Entity> tempPlayer = manager.getAllWithComponents(PlayerComponent.class);
if (tempPlayer.isEmpty())
System.err.println("montecarlo.startgamerandom noPlayerComponent found");
Entity[] players = new Entity[tempPlayer.size()];
tempPlayer.toArray(players);
//set all the players to random ai
for (Entity entity : players) {
PlayerComponent component = (PlayerComponent) entity.getComponent(PlayerComponent.class);
if (component.getPlayerID() == (byte)playerId)
{
score = component.getTotalScore();
break;
}
}
return score;
}
这是我做的得分
for (int j = 0; j < RUNS; j++)
{
int score = StartGameRandom(manager,input);
maxScore = Math.max(score, maxScore);
if (j == 0)
{
minScore = score;
averageScore = score;
}
else
{
minScore = Math.min(score, minScore);
averageScore = ((averageScore*j)+score)/(j+1);
}
}
究竟什么是Java中做到这一点的最好办法
你是什么意思,连续运行1000次?可以更好地解释你的目标是什么? – prmottajr
第一个问题应该是询问您是否已经对您的代码进行了分析并确定这实际上是一个瓶颈。计算机速度非常快,使用线程的开销很容易超过任何好处。 – Deadron
如果你看2秒的代码部分,你会看到行 (int j = 0; j