1. A method of creating a thread comprising: issuing a first plurality of calls to create the thread, said first plurality of calls forming a call chain traversing a plurality of code layers, said first plurality of calls being included in a first runtime execution stack of an executing first thread, each of said plurality of code layers providing an interface for invoking code of said each code layer to create the thread, wherein, for the thread being created as a result of said first plurality of calls, a data area including thread-specific context information is created and initialized at each of said plurality of code layers when code of said each code layer is invoked in accordance with said interface of said each code layer to create the thread, wherein each of said plurality of code layers is included in a registered set of code layers, wherein a first code layer of the registered set is not included in the first plurality of calls whereby, as a result of the first plurality of calls, no data area is created and initialized for the first code layer; responsive to a last one of the first plurality of calls in the call chain being issued to a last one of the plurality of rode layers from another one of the plurality of code layers, creating the thread; and executing the thread, wherein said executing the thread includes issuing a second plurality of calls forming a callback call chain, wherein said second plurality of calls are included in a second runtime stack for the thread created and results in transferring control to a first body of code for the thread, wherein a birth callback routine of said first code layer is invoked in connection with said second plurality of calls performed by the thread and the birth callback routine performs processing comprising creating and initializing a data area including thread-specific context information for the thread for the first code layer.