我目前正在为需求驱动的工作流编写一个小框架。该API现在稳定,我正在改进测试。很容易证明计算是正确的(这是一个好的开始),但是,框架的主要兴趣是并行地启动子任务(当需要和可能时)。测试并发/并行执行
有没有办法自动测试两个不同的代码段以并行/并行方式运行?我更喜欢不依赖执行时间(加速)度量。
框架是用scala编写的,很大程度上依赖于Akka Futures。
编辑:
下面是一个例子:
val foo = step {
//... defines an arbitrary task
}
// Runs 5 times the code inside step foo
val foos = repeat(5)(foo)
我想确保内部foo
的代码并行执行5次。
我喜欢这个想法,但你肯定在演员邮箱中邮件的绝对排序的? – paradigmatic
@paradigmatic:不幸的是,http://akka.io/docs/akka/snapshot/scala/actors.html似乎没有提到有关订购的任何内容,包括我期望任何actor实现提供的保证。 –
您可以在邮件中使用时间戳,然后在测试结束时在时间戳上排列邮件并构建“事件时间线”。 – tuxSlayer