java - 如何获取多个可运行对象共有的变量的最小值?

标签 java multithreading variables

我正在尝试使用线程和 MVC 模拟各种战斗序列。详情:

  • 每个生物都有一个主动分数来决定谁先走。
  • 每个生物都必须说明其预期目标。
  • 生物被加载到“战斗”类的堆栈中;得分最低的生物首先进入堆叠。
  • 一旦每个生物都选择了一个目标,堆栈就会清空,并且生物会根据他们的先发顺序行动,最高优先。

分配约束要求我将这些生物作为单独的线程来处理。问题是:

  • 我不知道有什么方法可以让“战斗”类意识到它必须处理堆栈上的 Action ,因为不会有更多的生物进入它。
  • 我想“战斗”一定有办法知道所有运行线程中最低的主动分数,但我不知道如何管理它。

如果我不能说得更清楚,我深表歉意。这是非常令人沮丧的。

最佳答案

在不知道这个作业的确切要求的情况下,很难给出一个好的答案,但这里有一些想法给你。

Combat 类需要知道它何时拥有所有移动,以便它可以处理它们。每个生物要么每回合需要进行一次战斗移动,要么有某种方式表明它不会进行战斗移动或类似 Action 。没有这些信息,您将不知道何时处理移动。

按先攻顺序处理移动很有意义,但您需要将它们按顺序压入堆栈吗?添加所有移动然后排序或使用优先级队列似乎是更好的解决方案。如果要求战斗类只接受特定顺序的移动,那么是的,它需要知道最低分数。

关于java - 如何获取多个可运行对象共有的变量的最小值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6434413/

相关文章:

multithreading - 在线程中使用TADOQuery

java - 在 Java 中验证 BigDecimal 数据类型的空值

c++ - 从不同线程调用对象的成员函数 : how to use mutex correctly?

java - 签名的 Java Applet 不工作

multithreading - 如何使用线程代替 perl/pdl 中的子例程循环

PHP while 循环

javascript - 如何在javascript中将变量传递给对象内的其他函数

powershell - 选择字符串-上下文并在数据中查找电子邮件地址

java - Tomcat 无法识别 DLL 文件

java - POI - 将新字体导入 POI