With these language elements, storage is allocated for each individual program invocation instance. Therefore, even if a program is invoked multiple times among multiple threads, each time it is invoked it will be allocated separate storage. For example, if program X is invoked in two or more threads, each program invocation instance of X gets its own set of resources, such as storage.
Because the storage associated with these language elements is program invocation instance scoped, data is protected from access across threads and you do not have to concern yourself with access synchronization. However, this data cannot be shared between invocations of programs unless it is explicitly passed.
(C) Copyright IBM Corporation 1992, 2005. All Rights Reserved.