STATISCH {(*ALLTHREAD)}
- So geben Sie an, dass eine lokale Variable im statischen Speicher gespeichert wird
- So geben Sie an, dass dieselbe Kopie einer statischen Variablen für alle Threads in einer Multithread-Umgebung verfügbar ist
- Gibt an, dass eine Java™ -Methode als statische Methode definiert ist.
Für eine lokale Variable einer Unterprozedurgibt das Schlüsselwort STATIC an, dass das Datenelement im statischen Speicher gespeichert werden soll, und hält dadurch seinen Wert über Aufrufe an die Prozedur, in der es definiert ist. Das Schlüsselwort kann nur innerhalb einer Unterprozedur verwendet werden. Alle globalen Felder sind statisch.
Das Datenelement wird initialisiert, wenn das Programm oder Serviceprogramm, in dem es enthalten ist, zum ersten Mal aktiviert wird. Sie wird nicht erneut reinitialisiert, auch wenn die Reinitialisierung für globale Definitionen als Teil der normalen Zyklusverarbeitung erfolgt.
Wird STATIC nicht angegeben, wird jedes lokal definierte Datenelement im dynamischen Speicher gespeichert. Im dynamischen Speicher gespeicherte Daten werden zu Beginn jedes Aufrufs initialisiert. Wenn eine Prozedur rekursiv aufgerufen wird, erhält jeder Aufruf eine eigene Kopie des Speichers.
Für jede Variable in einem Modul, in der THREAD (*CONCURRENT) in der Steuerspezifikation angegeben istgibt STATIC (*ALLTHREAD) an, dass dieselbe Instanz einer statischen Variablen von allen Threads verwendet wird. Wenn *ALLTHREAD nicht für eine statische Variable in einem Thread-Concurrent-Modul angegeben wird, befindet sich die Variable im threadlokalen Speicher, was bedeutet, dass jeder Thread eine eigene Instanz der Variablen hat.
Wenn Sie eine Kopierdatei haben, die mit oder ohne das Schlüsselwort THREAD (*CONCURRENT) in die Quelle kopiert werden kann, können Sie auf die vordefinierte Bedingung *THREAD_CONCURRENT prüfen, um zu steuern, ob das Schlüsselwort STATIC (*ALLTHREAD) eingeschlossen werden soll. Weitere Informationen finden Sie unter Bedingungen für Steuerspezifikationsschlüsselwörter .
- STATIC (*ALLTHREAD) ist nur zulässig, wenn THREAD (*CONCURRENT) in der Steuerbestimmung angegeben ist.
- Das Schlüsselwort STATIC wird für globale Variablen impliziert. Das Schlüsselwort STATIC kann für globale Variablen nur angegeben werden, wenn *ALLTHREAD als Parameter angegeben ist.
- Eine mit STATIC (*ALLTHREAD) definierte Variable kann nicht mit der Adresse von Variablen initialisiert werden, die nicht auch mit STATIC (*ALLTHREAD) definiert sind.
Für eine Java-Methodegibt das Schlüsselwort STATIC an, dass die Methode als statisch definiert ist. Wenn STATIC nicht angegeben wird, wird davon ausgegangen, dass es sich bei der Methode um eine Instanzdefinitionsmethode handelt. Sie müssen das Schlüsselwort STATIC für Ihren Prototyp nur codieren, wenn die Java-Methode das Attribut "static" hat. Der Parameter *ALLTHREAD ist nicht zulässig, wenn das Schlüsselwort STATIC für einen Prototyp angegeben wird.