我的模拟是使用actor和Scala 2.8-Snapshot.在Java JRE 1.5中它运行良好 - 所有40个齿轮(演员)同时工作.使用Java JRE 1.6只有3个齿轮同时工作.我使用和不使用GUI进行测试:两者都给出相同的结果.
我在GUI上的模拟可以在github上找到:http://github.com/pmeiclx/scala_gear_simulation
也许你还记得我与演员的第一个问题.在解决了这些问题后,我为模拟做了一个GUI,我得到了这种新的"奇怪"行为.
这是没有GUI的代码:
package ch.clx.actorversions
import actors.Actor
import actors.Actor._
import collection.mutable.ListBuffer
case class ReceivedSpeed(gear: Gear)
case object StartSync
case class SyncGear(controller: GearController, syncSpeed: Int)
object ActorVersion {
def main(args:Array[String]) = {
println("[App] start with creating gears")
val gearList = new ListBuffer[Gear]()
for (i <- 0 until 100) {
gearList += new Gear(i)
}
val gearController = new GearController(gearList)
gearController.start()
gearController ! StartSync
}
}
/**
* CONTROLLER …Run Code Online (Sandbox Code Playgroud)