gpt4 book ai didi

java - 在循环中创建多个线程

转载 作者:行者123 更新时间:2023-12-01 23:43:16 26 4
gpt4 key购买 nike

如何创建一个 for 循环来创建多个可识别的线程。线程是游戏中的玩家,需要相互通信。我需要能够访问每个玩家的 getter 和 setter。

基本上,每个Player都有一个名称属性并且需要可识别。如果我这样做,我看不到它们如何相互识别......

for (int i = 0; i < numberOfPlayers; i++)
{
Thread t = new Thread(new Player("Player" + (i + 1), (i + 1), (i + 2)));
}

最佳答案

一种选择是创建玩家的Map,并将此Map传递给每个Player,以便他们可以直接相互通信(或者使 map 静态,以便它对所有Player对象或其他对象可见)

Map<String, Player> players = new HashMap<>();
for(int i = 0; i < numberOfPlayers; i++) {
players.put("Player" + (i + 1), new Player("Player" (i + 1), (i + 1), (i + 2), players));
}
for(Player player : map.values()) {
new Thread(player).start();
}

另一个选择是创建一个充当消息总线的类,该类可以访问所有玩家的 setter - 如果一个玩家想要向另一个玩家发送消息,那么它会将消息发送到消息总线,然后消息总线负责调用适当的 setter 方法

关于java - 在循环中创建多个线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17601262/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com