From the Article:
Scala is different from other concurrent languages in that it contains no language
support for concurrency beyond the standard thread model offered by the host environment. Instead of specialized language constructs we rely on Scala's general abstraction capabilities to define higher-level concurrency models. In such a way, we were able to dene all essential operations of Erlang's actor-based process model in the Scala library.
However, since Scala is implemented on the Java VM, we inherited some of the deciencies of the host environment when it comes to concurrency, namely low maximum number of threads and high context-switch overhead. In this paper we have shown how to turn this weakness into a strength. By dening a new event-based model for actors, we could increase dramatically their efficiency and
scalability. At the same time, we kept to a large extent the programming model of thread-based actors, which would not have been possible if we had switched to a traditional event-based architecture, because the latter causes an inversion of control.