Jas*_*Jas 5 java concurrency scala actor akka
如果我有这个同步代码,我想用没有同步的actor替换,怎么样?
public synchronized int incrementAndGet() {
i = i + 1;
return i;
}
Run Code Online (Sandbox Code Playgroud)
我在网站上有一堆用户,我需要返回每个递增的数字...如何用没有同步的actor代码替换该代码,因此没有阻塞同步代码.我想这将无法在多核等上运行它(这不是演员的目的吗?).
一个简单的 actor 包裹i
其内部状态:
case object Inc
class IncrementingActor extends Actor {
var i = 0
protected def receive = {
case Inc =>
i += 1
sender ! i
}
}
Run Code Online (Sandbox Code Playgroud)
并阻止使用(您需要以某种方式获取incrementAndGet
):
import akka.pattern.ask
def incrementAndGet() =
Await.result((incrementingActor ? Inc).mapTo[Int], 1 seconds)
Run Code Online (Sandbox Code Playgroud)
这段代码是:缓慢、复杂且不惯用。关于什么AtomicInteger
?
归档时间: |
|
查看次数: |
387 次 |
最近记录: |