Abstract
Active objects offer a paradigm which simplifies writing distributed applications. Since each active object has a single thread of control, data races are prevented. However, this programming model has its limitations: it is deadlock-prone, and it is not efficient on multicore machines. To overcome these limitations, we present an extension of the active object model, called multi-active objects, that allows each activity to be multi-threaded. The new model is implemented as a Java library; it relies on method annotations to decide which requests can be run in parallel. It provides implicit parallelism, sparing the programmer from low-level concurrency mechanisms. We define the operational semantics of the multi-active objects and study the basic properties of this model. Finally, we show with two applications that our approach is easy to program and efficient.
Chapter PDF
Similar content being viewed by others
References
Lavender, R.G., Schmidt, D.C.: Active object: an object behavioral pattern for concurrent programming. In: Pattern Languages of Program Design 2, pp. 483–499. Addison-Wesley Longman Publishing Co., Inc., Boston (1996)
Yonezawa, A., Briot, J.P., Shibayama, E.: Object-oriented concurrent programming ABCL/1. In: Conference Proceedings of OOPLSA 1986. ACM, NY (1986)
Caromel, D., Henrio, L., Serpette, B.P.: Asynchronous sequential processes. Information and Computation 207(4), 459–495 (2009)
Agha, G.: Actors: a model of concurrent computation in distributed systems. MIT Press, Cambridge (1986)
Agha, G., Mason, I.A., Smith, S.F., Talcott, C.L.: A foundation for actor computation. Journal of Functional Programming 7(1), 1–72 (1997)
Halstead Jr., R.H.: Multilisp: A language for concurrent symbolic computation. ACM Transactions on Programming Languages and Systems (TOPLAS) 7(4), 501–538 (1985)
Johnsen, E.B., Owe, O., Yu, I.C.: Creol: A type-safe object-oriented model for distributed concurrent systems. Theoretical Computer Science 365(1-2), 23–66 (2006)
Schäfer, J., Poetzsch-Heffter, A.: JCoBox: Generalizing active objects to concurrent components. In: D’Hondt, T. (ed.) ECOOP 2010. LNCS, vol. 6183, pp. 275–299. Springer, Heidelberg (2010)
Dedecker, J., Van Cutsem, T., Mostinckx, S., D’Hondt, T., De Meuter, W.: Ambient-oriented programming in ambientTalk. In: Thomas, D. (ed.) ECOOP 2006. LNCS, vol. 4067, pp. 230–254. Springer, Heidelberg (2006)
de Boer, F.S., Clarke, D., Johnsen, E.B.: A complete guide to the future. In: De Nicola, R. (ed.) ESOP 2007. LNCS, vol. 4421, pp. 316–330. Springer, Heidelberg (2007)
Henrio, L., Huet, F., István, Z.: A language for multi-threaded active objects. Research Report RR-8021, INRIA (July 2012)
Ratnasamy, S., Francis, P., Handley, M., Karp, R., Shenker, S.: A scalable content-addressable network. In: Proceedings of the 2001 Conference on Applications, Technologies, Architectures, and Protocols for Computer Communications, pp. 161–172. ACM (2001)
Haustein, M., Lohr, K.: Jac: declarative Java concurrency. Concurrency and Computation: Practice and Experience 18(5), 519–546 (2006)
Shanneb, A., Potter, J., Noble, J.: Exclusion requirements and potential concurrency for composite objects. Science of Computer Programming 58(3), 344–365 (2005)
Frumkin, M., Schultz, M., Jin, H., Yan, J.: Implementation of NAS parallel benchmarks in Java. In: A Poster Session at ACM 2000 Java Grande Conference (2000)
Scholliers, C., Tanter, É., De Meuter, W.: Parallel actor monitors. In: 14th Brazilian Symposium on Programming Languages (2010)
Cunha, C., Sobral, J.: An annotation-based framework for parallel computing. In: Proceedings of the 15th Euromicro International Conference on Parallel, Distributed and Network-Based Processing, pp. 113–120. IEEE Computer Society (2007)
Haller, P., Odersky, M.: Scala actors: Unifying thread-based and event-based programming. Theoretical Computer Science 410(2-3), 202–220 (2009)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 IFIP International Federation for Information Processing
About this paper
Cite this paper
Henrio, L., Huet, F., István, Z. (2013). Multi-threaded Active Objects. In: De Nicola, R., Julien, C. (eds) Coordination Models and Languages. COORDINATION 2013. Lecture Notes in Computer Science, vol 7890. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-38493-6_7
Download citation
DOI: https://doi.org/10.1007/978-3-642-38493-6_7
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-38492-9
Online ISBN: 978-3-642-38493-6
eBook Packages: Computer ScienceComputer Science (R0)