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 次 |
| 最近记录: |