In this paper, we introduce a Java library for actors integrated seamlessly with futures and supporting coroutines. Coroutines allow actors to suspend the execution of a message and possibly schedule other messages before resuming the suspended continuation. As such coroutines enhance actors as a major building block for constructing software components. The library is used together with a compiler to generate code from an application model into an executable program in Java. A formal description of the translation process is provided together with the most important library methods. We highlight the importance of having a scalable and efficient implementation by means of some typical benchmarks which model a large number of tasks, coroutines and actors.

Additional Metadata
Keywords Actors, Asynchronous programming, Coroutines, Futures, Java, Object-orientation
Persistent URL dx.doi.org/10.1007/978-3-030-02146-7_12
Series Lecture Notes in Computer Science
Conference International Conference on Formal Aspects of Component Software
Citation
Serbanescu, V.N, de Boer, F.S, & Jaghouri, M.M. (2018). Actors with coroutine support in Java. In Lecture Notes in Computer Science/Lecture Notes in Artificial Intelligence (pp. 237–255). doi:10.1007/978-3-030-02146-7_12