【发布时间】:2011-08-28 00:03:38
【问题描述】:
正如在此之前多次说过的,您可以在 actor 内生成一个新线程(将长时间处理的计算放入 actor{} 块中),并且生成的计算将安全地在同一个线程池上运行(由演员调度程序)。
actor{
var i = 0
case msg => actor {
// computation
i = i + 1 // is `i` still thread safe?
// looks like it can be access simultaneosly from 2 two threads now
// should I make it @volatile?
}
reply(i)
}
但是,它是线程安全的吗?一般来说,它是否遵循原始设计,即在某一时刻只有一个线程可以与一个参与者一起工作?
【问题讨论】:
标签: scala thread-safety actor