![]() |
1
79
不过,我们不应该过于兴奋。actor模型(与某些指控相反)并没有使死锁成为不可能。actor模型也不能防止不同进程(例如消息队列)之间的资源争用。模型只有在某个级别以上才是“无锁”的。在较低的级别,为了协调消息队列,仍然需要锁定。 一个线程不能被视为一个参与者并向其他线程发送消息吗? 我可以通过使用不同的线程在任何语言中使用Actor模型吗? 是的,但这需要更多的工作。你最喜欢的语言可能有一个消息传递库,所以这将是第一件要调查的事情。此外,还应该研究不可变数据结构的使用。注意,如果一个数据结构是不可变的,那么您基本上已经处理了“共享状态”问题——多个线程可以保存对不可变数据的引用,而不会发生任何不好的情况。演员语言也倾向于函数语言(erlang、scala)是有原因的。
|
![]() |
2
2
|
![]() |
Mandroid · 异步如何在基于参与者的系统中工作? 7 年前 |
![]() |
rapt · Scala:如何扩展Akka演员? 7 年前 |
![]() |
KKO · Akka演员池和团体之间的差异 10 年前 |
|
As As · Scala演员内部的线程休眠 10 年前 |