刚刚开始使用 Scala Actors。这斯卡拉网站 http://www.scala-lang.org/node/242 says:
可以通过使用来避免线程阻塞操作react
等待
新消息(基于事件的挂件receive
)。然而,有一个
(通常很小)支付的价格:react
永远不会回来。
...
请注意,使用react
里面一个while
循环不起作用!然而,
由于循环很常见,因此有特殊的库以形式支持它
的一个loop
功能。它可以这样使用:
loop {
react {
case A => ...
case B => ...
}
}
我现在很困惑 - 似乎有一个矛盾:
a) If react
永远不会返回,那么将其放入循环有什么意义呢?
b) 自从loop
重复执行一个块,有什么不同while(true)
- 为什么不while
有效,以及以什么方式“无效”?
两种功能,loop
and react
不纯粹。loop
通过名称参数进行调用并react
一个 PartialFunction,两者都在原始 actor 上设置变量。这是因为演员并不总是有一条线索。仅当其消息框中有消息时,它才会变为活动状态。这就是为什么一个while(true)
将导致 100% cpu 使用并且 actor 没有响应。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)