Concurrent object construction in modern object-oriented programming languages

Nowadays concurrency is a key issue in modern object-oriented programming languages. Billions of objects and object graphs are created at runtime, thus parallelization of object construction may result in signi cant speed-up in applications. In this paper we present di erent scenarios where parallelization seems to be valuable. These scenarios belong to object constructions and to di erent languages. The C++ programming language uses value semantics as basis of objectorientation. Objects can be used as values and C++ o ers copy constructors automatically that copy all members of a class. This operation seems to be ideal for parallelization because independent sources need to be copied to independent targets: without locks, without synchronization problems. We present our concurrent copy construction approach. The Spring Framework is a widely-used application framework and inversion of control container for the Java platform. At application startup the context of a Spring based application must be constructed. This context consists of many rather small objects, called beans. Among them singleton non-lazy beans are created and initialized at startup sequentially which fact increases the startup time. Besides that, Spring can manage a context hierarchy or hierarchy of containers in which each child context can access beans from parent context, but not the other way around, and sibling contexts are separated and invisible for each other. These traits make the child contexts and the independent beans feasible candidates for concurrent creation and initialization.