Concurrency in object-oriented languages is still waiting for a satisfactory solution. For many application areas, standard mechanisms like threads and locks are too low level and have shown to be error-prone and not modular enough. Lately the actor paradigm has regained attention as a possible solution to concurrency in OOLs. We propose JCoBox: a Java extension with an actor-like concurrency model based on the notion of concurrently running object groups, so-called coboxes . Communication is based on asynchronous method calls with standard objects as targets. Cooperative multi-tasking within coboxes allows for combining active and reactive behavior in a simple and safe way. Futures and promises lead to a data-driven synchronization of tasks. This paper describes the concurrency model, the formal semantics, and the implementation of JCoBox, and shows that the performance of the implementation is comparable to state-of-the-art actor-based language implementations for the JVM.
%0 Conference Paper
%1 JCoBox
%A Schäfer, Jan
%A Poetzsch-Heffter, Arnd
%B ECOOP 2010 -- Object-Oriented Programming
%C Berlin
%D 2010
%I Springer
%K Actors AmbientTalk CoBoxes Semantics
%P 275--299
%R 10.1007/978-3-642-14107-2_13
%T JCoBox: Generalizing Active Objects to Concurrent Components
%V 6183
%X Concurrency in object-oriented languages is still waiting for a satisfactory solution. For many application areas, standard mechanisms like threads and locks are too low level and have shown to be error-prone and not modular enough. Lately the actor paradigm has regained attention as a possible solution to concurrency in OOLs. We propose JCoBox: a Java extension with an actor-like concurrency model based on the notion of concurrently running object groups, so-called coboxes . Communication is based on asynchronous method calls with standard objects as targets. Cooperative multi-tasking within coboxes allows for combining active and reactive behavior in a simple and safe way. Futures and promises lead to a data-driven synchronization of tasks. This paper describes the concurrency model, the formal semantics, and the implementation of JCoBox, and shows that the performance of the implementation is comparable to state-of-the-art actor-based language implementations for the JVM.
%@ 978-3-642-14106-5
@inproceedings{JCoBox,
abstract = {Concurrency in object-oriented languages is still waiting for a satisfactory solution. For many application areas, standard mechanisms like threads and locks are too low level and have shown to be error-prone and not modular enough. Lately the actor paradigm has regained attention as a possible solution to concurrency in OOLs. We propose JCoBox: a Java extension with an actor-like concurrency model based on the notion of concurrently running object groups, so-called coboxes . Communication is based on asynchronous method calls with standard objects as targets. Cooperative multi-tasking within coboxes allows for combining active and reactive behavior in a simple and safe way. Futures and promises lead to a data-driven synchronization of tasks. This paper describes the concurrency model, the formal semantics, and the implementation of JCoBox, and shows that the performance of the implementation is comparable to state-of-the-art actor-based language implementations for the JVM.},
added-at = {2011-12-26T18:40:29.000+0100},
address = {Berlin},
affiliation = {University of Kaiserslautern},
author = {Sch\"{a}fer, Jan and Poetzsch-Heffter, Arnd},
biburl = {https://www.bibsonomy.org/bibtex/28562aceffdfc79c647899d86214e0477/gron},
booktitle = {ECOOP 2010 -- Object-Oriented Programming},
description = {Abstract - SpringerLink},
doi = {10.1007/978-3-642-14107-2_13},
interhash = {52cc28cc100c86316a321e76bcb18c67},
intrahash = {8562aceffdfc79c647899d86214e0477},
isbn = {978-3-642-14106-5},
keyword = {Computer Science},
keywords = {Actors AmbientTalk CoBoxes Semantics},
pages = {275--299},
publisher = {Springer},
series = {LNCS},
timestamp = {2015-08-28T16:06:40.000+0200},
title = {JCoBox: Generalizing Active Objects to Concurrent Components},
volume = 6183,
year = 2010
}