我有一个像这样的Actor(假设接收方法在其他地方被覆盖):
class MyClass extends Actor {
def method1() = { ... }
def method2() = { ... }
def method3() = {
this.synchronized {
....
....
}
}
}
如果我在我的Actor中定义了最终字段,那么会发生什么:
private val lockType = new AnyRef
然后我可以使用此锁来同步我的方法3?有什么区别?我的理解是,使用此引用来锁定方法会使该引用不可用,直到锁被释放。
在上面的例子中,我使用了一个可以独立于this引用运行的锁,只有在对method3做了一些动作时才会锁定,而这个引用仍可用于其他线程吗?
答案 0 :(得分:4)
不需要在actor内部进行同步。演员一次只会处理一条消息。