A method and arrangement for providing each thread of execution (28, 30, 32 and 34) of a multi-threading digital data processing environment with private copies of each set of initialization data (regions 60-1 through 60-4 and 62-1 through 62-4) that is required by procedures (44, 46) which are executed in the context of more than one of the threads. The regions (duplicate data copies) are generated from templates (56, 58) that include a base or original copy of the required set of initialization data. The templates are formulated during operation of the digital data processing system to compile, link and load the procedures and are each identified by a region descriptor (72) which includes a region index (a non-negative integer) and the memory address of the template. Regions are created when the initialization data of the region is required by a procedure that is executing within the context of a thread (i.e., regions are created on an as needed basis) and the memory address of each region is stored in a thread address array (70) so that subsequent access by procedures executing in the context of the same thread can be made using the region descriptor. To conserve system memory, the thread address array is not established in memory until the corresponding thread is being executed and a procedure of the thread requires initialization data (i.e., a region for that thread is to be created).