有没有办法比较每个线程java的变量

时间:2016-07-03 00:40:21

标签: java multithreading concurrency

我有一个将要参加比赛的马匹名单。所以我为每匹马创建了一个线程来模拟比赛。每匹马都有这个属性的名称和年龄。该轨道将在run方法内运行。在赛道期间,我喜欢监控和比较每匹马的马/线距离。

1 个答案:

答案 0 :(得分:0)

  

有没有办法比较每个线程java的变量

是的。

  • 将变量声明为Horse类的实例变量;例如添加一个实例变量来保持行进的距离。 (它必须是一个实例变量。你不能从另一个线程访问某个方法中的局部变量。)
  • 将变量的公共getter方法添加到Horse
  • 在您想要进行比较的地方:
    • 迭代Horse个对象
    • 调用getter方法
    • 比较返回的值。

然而,有一个很大的问题。运行每个Horse的线程将与查看/比较位置的线程不同。因此,对"距离的所有访问/更新都是在#34;变量必须同步,否则线程上的风险不会看到另一个变更。