Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ thr_intro(3-thr) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

thr_intro(3-thr)                                           thr_intro(3-thr)

NAME
     thrintro - Einführung in DCE Threads

BESCHREIBUNG
     DCE Threads umfaßt einen Satz von Routinen, die zum Erstellen eines
     Multithread-Programms aufgerufen werden können. Multithreading wird
     zur Verbesserung der Leistung eines Programms verwendet. Von DCE
     Threads implementierte Routinen, die im Entwurf 4 des POSIX-Standards
     1003.4a nicht aufgeführt sind, sind durch das Suffix np im Namen
     gekennzeichnet. Bei diesen Routinen handelt es sich um neue Grundfunk-
     tionen.

     Die Threads-Routinen sind auf den Referenzseiten in alphabetischer
     Reihenfolge sortiert; in den Tabellen in vorliegender Einführung sind
     die Routinen dagegen nach folgenden Funktionsgruppen sortiert:

     -  Threads-Routinen

     -  Routinen, die das Threads-Paket implizit initialisieren

     -  Routinen zu Attributobjekten

     -  Mutex-Routinen

     -  Routinen zu Condition-Variablen

     -  Routinen zu thread-spezifischen Daten

     -  Threads-Abbruchroutinen

     -  Prioritäts- und Scheduling-Routinen für Threads

     -  Bereinigungsroutinen

     -  Die Routine atfork()

     -  Signalbehandlungsroutinen


















Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

thr_intro(3-thr)                                           thr_intro(3-thr)

ROUTINEN
     ______________________________________________________________________
    |                           Threads-Routinen                          |
    |_______________________________|_____________________________________|
    | Routine                       |  Beschreibung                       |
    |_______________________________|_____________________________________|
    | pthreadcreate()              |  Einen Thread erstellen             |
    |_______________________________|_____________________________________|
    | pthreaddelaynp()            |  Veranlassen, daß ein Thread eine   |
    |                               |  bestimmte Zeit wartet              |
    |_______________________________|_____________________________________|
    | pthreaddetach()              |  Einen Thread zum Löschen markieren |
    |_______________________________|_____________________________________|
    | pthreadequal()               |  Zwei Thread-IDs miteinander ver-   |
    |                               |  gleichen                           |
    |_______________________________|_____________________________________|
    | pthreadexit()                |  Den aufrufenden Thread beenden     |
    |_______________________________|_____________________________________|
    | pthreadjoin()                |  Veranlassen, daß der aufrufende    |
    |                               |  Thread auf die Beendigung eines    |
    |                               |  angegebenen Thread wartet          |
    |_______________________________|_____________________________________|
    | pthreadonce()                |  Eine Initialisierungsroutine zur   |
    |                               |  einmaligen Ausführung aufrufen     |
    |_______________________________|_____________________________________|
    | pthreadself()                |  Die ID des aktuellen Thread abrufen|
    |_______________________________|_____________________________________|
    | pthreadyield()               |  Den Scheduler darüber informieren, |
    |                               |  daß der aktuelle Thread seinen Pro-|
    |                               |  zessor an andere Threads mit glei- |
    |                               |  cher oder höherer Priorität frei-  |
    |                               |  gibt                               |
    |_______________________________|_____________________________________|

     Beim Aufrufen der folgenden DCE Threads-Routinen führen diese implizit
     eine eventuell erforderliche Initialisierung des Threads-Pakets durch.
     Jede Anwendung, die DCE Threads verwendet, sollte also zunächst eine
     der folgenden Routinen aufrufen, bevor andere Threads-Routinen aufge-
     rufen werden, um zu gewährleisten, daß das Paket korrekt initialisiert
     wird.














Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

thr_intro(3-thr)                                           thr_intro(3-thr)

     ______________________________________________________________________
    |            Routinen, die Threads implizit initialisieren            |
    |_______________________________|_____________________________________|
    | Routine                       |  Beschreibung                       |
    |_______________________________|_____________________________________|
    | pthreadattrcreate()         |  Ein Objekt für Thread-Attribute    |
    |                               |  erstellen                          |
    |_______________________________|_____________________________________|
    | pthreadcreate()              |  Einen Thread erstellen             |
    |_______________________________|_____________________________________|
    | pthreadself()                |  Die ID des aktuellen Thread abrufen|
    |_______________________________|_____________________________________|
    | pthreadsetprio()             |  Das Attribut für die Scheduling-   |
    |                               |  Priorität ändern                   |
    |_______________________________|_____________________________________|
    | pthreadgetprio()             |  Das Attribut für die Scheduling-   |
    |                               |  Priorität abrufen                  |
    |_______________________________|_____________________________________|
    | pthreadsetscheduler()        |  Das Attribut für die Scheduling-   |
    |                               |  Strategie ändern                   |
    |_______________________________|_____________________________________|
    | pthreadgetscheduler()        |  Das Attribut für die Scheduling-   |
    |                               |  Strategie abrufen                  |
    |_______________________________|_____________________________________|
    | pthreadonce()                |  Eine Initialisierungsroutine zur   |
    |                               |  einmaligen Ausführung aufrufen     |
    |_______________________________|_____________________________________|
    | pthreadkeycreate()           |  Einen eindeutigen Schlüsselwert für|
    |                               |  thread-spezifische Daten generieren|
    |_______________________________|_____________________________________|
    | pthreadmutexattrcreate()    |  Ein Objekt für Mutex-Attribute     |
    |                               |  erstellen                          |
    |_______________________________|_____________________________________|
    | pthreadmutexinit()          |  Einen Mutex erstellen              |
    |_______________________________|_____________________________________|
    | pthreadcondattrcreate()     |  Ein Objekt für die Attribute von   |
    |                               |  Condition-Variablen erstellen      |
    |_______________________________|_____________________________________|
    | pthreadcondinit()           |  Eine Condition-Variable erstellen  |
    |_______________________________|_____________________________________|
    | pthreadtestcancel()          |  Übergabe eines zur Verarbeitung    |
    |                               |  anstehenden Abbruchs anfordern     |
    |_______________________________|_____________________________________|











Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

thr_intro(3-thr)                                           thr_intro(3-thr)

     ______________________________________________________________________
    |            Routinen, die Threads implizit initialisieren            |
    |_______________________________|_____________________________________|
    | Routine                       |  Beschreibung                       |
    |_______________________________|_____________________________________|
    | pthreadsetcancel()           |  Die allgemeine Abbruchmöglichkeit  |
    |                               |  des aktuellen Thread               |
    |                               |  aktivieren/deaktivieren            |
    |_______________________________|_____________________________________|
    | pthreadsetasynccancel()      |  Die asynchrone Abbruchmöglichkeit  |
    |                               |  des aktuellen Thread               |
    |                               |  aktivieren/deaktivieren            |
    |_______________________________|_____________________________________|
    | pthreaddelaynp()            |  Veranlassen, daß ein Thread eine   |
    |                               |  bestimmte Zeit wartet              |
    |_______________________________|_____________________________________|

     ______________________________________________________________________
    |                     Routinen zu Attributobjekten                    |
    |_______________________________|_____________________________________|
    | Routine                       |  Beschreibung                       |
    |_______________________________|_____________________________________|
    | pthreadattrcreate()         |  Ein Objekt für Thread-Attribute    |
    |                               |  erstellen                          |
    |_______________________________|_____________________________________|
    | pthreadattrdelete()         |  Ein Objekt für Thread-Attribute    |
    |                               |  löschen                            |
    |_______________________________|_____________________________________|
    | pthreadattrgetinheritsched()|  Das Attribut zur Übernahme des     |
    |                               |  Scheduling abrufen                 |
    |_______________________________|_____________________________________|
    | pthreadattrgetprio()        |  Das Attribut für die Scheduling-   |
    |                               |  Priorität abrufen                  |
    |_______________________________|_____________________________________|
    | pthreadattrgetsched()       |  Das Attribut für die Scheduling-   |
    |                               |  Strategie abrufen                  |
    |_______________________________|_____________________________________|
    | pthreadattrgetstacksize()   |  Das Attribut für die Stack-Größe   |
    |                               |  abrufen                            |
    |_______________________________|_____________________________________|
    | pthreadattrsetinheritsched()|  Das Attribut zur Übernahme des     |
    |                               |  Scheduling ändern                  |
    |_______________________________|_____________________________________|
    | pthreadattrsetprio()        |  Das Attribut für die Scheduling-   |
    |                               |  Priorität ändern                   |
    |_______________________________|_____________________________________|
    | pthreadattrsetsched()       |  Das Attribut für die Scheduling-   |
    |                               |  Strategie ändern                   |
    |_______________________________|_____________________________________|





Seite 4                      Reliant UNIX 5.44               Gedruckt 11/98

thr_intro(3-thr)                                           thr_intro(3-thr)

     ______________________________________________________________________
    |                     Routinen zu Attributobjekten                    |
    |_______________________________|_____________________________________|
    | Routine                       |  Beschreibung                       |
    |_______________________________|_____________________________________|
    | pthreadattrsetstacksize()   |  Das Attribut für die Stack-Größe   |
    |                               |  ändern                             |
    |_______________________________|_____________________________________|
    | pthreadcondattrcreate()     |  Ein Objekt für die Attribute von   |
    |                               |  Condition-Variablen erstellen      |
    |_______________________________|_____________________________________|
    | pthreadcondattrdelete()     |  Ein Objekt für die Attribute von   |
    |                               |  Condition-Variablen löschen        |
    |_______________________________|_____________________________________|
    | pthreadmutexattrcreate()    |  Ein Objekt für Mutex-Attribute     |
    |                               |  erstellen                          |
    |_______________________________|_____________________________________|
    | pthreadmutexattrdelete()    |  Ein Objekt für Mutex-Attribute     |
    |                               |  löschen                            |
    |_______________________________|_____________________________________|
    | pthreadmutexattrgetkindnp()|  Das Attribut für den Mutex-Typ     |
    |                               |  abrufen                            |
    |_______________________________|_____________________________________|
    | pthreadmutexattrsetkindnp()|  Das Attribut für den Mutex-Typ     |
    |                               |  ändern                             |
    |_______________________________|_____________________________________|

     ______________________________________________________________________
    |                            Mutex-Routinen                           |
    |_______________________________|_____________________________________|
    | Routine                       |  Beschreibung                       |
    |_______________________________|_____________________________________|
    | pthreadlockglobalnp()      |  Einen globalen Mutex sperren       |
    |_______________________________|_____________________________________|
    | pthreadmutexdestroy()       |  Einen Mutex löschen                |
    |_______________________________|_____________________________________|
    | pthreadmutexinit()          |  Einen Mutex erstellen              |
    |_______________________________|_____________________________________|
    | pthreadmutexlock()          |  Einen Mutex sperren und warten,    |
    |                               |  wenn der Mutex bereits gesperrt ist|
    |_______________________________|_____________________________________|
    | pthreadmutextrylock()       |  Einen Mutex sperren und die Routine|
    |                               |  beenden, wenn der Mutex bereits    |
    |                               |  gesperrt ist                       |
    |_______________________________|_____________________________________|
    | pthreadmutexunlock()        |  Einen Mutex entsperren             |
    |_______________________________|_____________________________________|
    | pthreadunlockglobalnp()    |  Einen globalen Mutex entsperren    |
    |_______________________________|_____________________________________|





Seite 5                      Reliant UNIX 5.44               Gedruckt 11/98

thr_intro(3-thr)                                           thr_intro(3-thr)

     ______________________________________________________________________
    |                   Routinen zu Condition-Variablen                   |
    |_______________________________|_____________________________________|
    | Routine                       |  Beschreibung                       |
    |_______________________________|_____________________________________|
    | pthreadcondbroadcast()      |  Alle Threads, die auf eine         |
    |                               |  Condition-Variable warten, aktivie-|
    |                               |  ren                                |
    |_______________________________|_____________________________________|
    | pthreadconddestroy()        |  Eine Condition-Variable löschen    |
    |_______________________________|_____________________________________|
    | pthreadcondinit()           |  Eine Condition-Variable erstellen  |
    |_______________________________|_____________________________________|
    | pthreadcondsignal()         |  Einen Thread aktivieren, der auf   |
    |                               |  eine Condition-Variable wartet     |
    |_______________________________|_____________________________________|
    | pthreadcondtimedwait()      |  Veranlassen, daß ein Thread eine   |
    |                               |  bestimmte Zeit auf das Signalisie- |
    |                               |  ren oder Broadcasting einer Condi- |
    |                               |  tion-Variable wartet               |
    |_______________________________|_____________________________________|
    | pthreadcondwait()           |  Veranlassen, daß ein Thread auf das|
    |                               |  Signalisieren oder Broadcasting    |
    |                               |  einer Condition-Variable wartet    |
    |_______________________________|_____________________________________|
    | pthreadgetexpirationnp()   |  Einen Wert für eine gewünschte     |
    |                               |  Ablaufzeit abrufen                 |
    |_______________________________|_____________________________________|

     ______________________________________________________________________
    |                       Thread-spezifische Daten                      |
    |_______________________________|_____________________________________|
    | Routine                       |  Beschreibung                       |
    |_______________________________|_____________________________________|
    | pthreadgetspecific()         |  Die dem angegebenen Schlüssel      |
    |                               |  zugeordneten thread-spezifischen   |
    |                               |  Daten abrufen                      |
    |_______________________________|_____________________________________|
    | pthreadkeycreate()           |  Einen eindeutigen Schlüsselwert für|
    |                               |  thread-spezifische Daten generieren|
    |_______________________________|_____________________________________|
    | pthreadsetspecific()         |  Die dem angegebenen Schlüssel      |
    |                               |  zugeordneten thread-spazifischen   |
    |                               |  Daten festlegen                    |
    |_______________________________|_____________________________________|









Seite 6                      Reliant UNIX 5.44               Gedruckt 11/98

thr_intro(3-thr)                                           thr_intro(3-thr)

     ______________________________________________________________________
    |                       Threads-Abbruchroutinen                       |
    |_______________________________|_____________________________________|
    | Routine                       |  Beschreibung                       |
    |_______________________________|_____________________________________|
    | pthreadcancel()              |  Zulassen, daß ein Thread den       |
    |                               |  Abbruch anfordert                  |
    |_______________________________|_____________________________________|
    | pthreadsetasynccancel()      |  Die asynchrone Abbruchmöglichkeit  |
    |                               |  des aktuellen Thread               |
    |                               |  aktivieren/deaktivieren            |
    |_______________________________|_____________________________________|
    | pthreadsetcancel()           |  Die allgemeine Abbruchmöglichkeit  |
    |                               |  des aktuellen Thread               |
    |                               |  aktivieren/deaktivieren            |
    |_______________________________|_____________________________________|
    | pthreadsignaltocancelnp() |  Einen Thread abbrechen, wenn vom   |
    |                               |  Prozeß ein Signal empfangen wird   |
    |_______________________________|_____________________________________|
    | pthreadtestcancel()          |  Die Übergabe eines zur Verarbeitung|
    |                               |  anstehenden Abbruchs anfordern     |
    |_______________________________|_____________________________________|

     ______________________________________________________________________
    |           Prioritäts- und Scheduling-Routinen für Threads           |
    |_______________________________|_____________________________________|
    | Routine                       |  Beschreibung                       |
    |_______________________________|_____________________________________|
    | pthreadgetprio()             |  Die aktuelle Priorität eines Thread|
    |                               |  abrufen                            |
    |_______________________________|_____________________________________|
    | pthreadgetscheduler()        |  Die aktuelle Scheduling-Strategie  |
    |                               |  eines Thread abrufen               |
    |_______________________________|_____________________________________|
    | pthreadsetprio()             |  Die aktuelle Priorität eines Thread|
    |                               |  ändern                             |
    |_______________________________|_____________________________________|
    | pthreadsetscheduler()        |  Die aktuelle Scheduling-Strategie  |
    |                               |  und Priorität eines Thread ändern  |
    |_______________________________|_____________________________________|

     ______________________________________________________________________
    |                         Bereinigungsroutinen                        |
    |_______________________________|_____________________________________|
    | Routine                       |  Beschreibung                       |
    |_______________________________|_____________________________________|
    | pthreadcleanuppop()         |  Eine Bereinigungsroutine aus dem   |
    |                               |  Stack entfernen                    |
    |_______________________________|_____________________________________|
    | pthreadcleanuppush()        |  Eine Bereinigungsroutine einrichten|
    |_______________________________|_____________________________________|



Seite 7                      Reliant UNIX 5.44               Gedruckt 11/98

thr_intro(3-thr)                                           thr_intro(3-thr)

     ______________________________________________________________________
    |                         Die Routine atfork()                        |
    |_______________________________|_____________________________________|
    | Routine                       |  Beschreibung                       |
    |_______________________________|_____________________________________|
    | atfork()                      |  Bei Erzeugung eines neuen Prozesses|
    |                               |  verwendete Bereinigungsroutinen    |
    |_______________________________|_____________________________________|

     ______________________________________________________________________
    |                      Signalbehandlungsroutinen                      |
    |_______________________________|_____________________________________|
    | Routine                       |  Beschreibung                       |
    |_______________________________|_____________________________________|
    | sigaction()                   |  Die bei Empfang eines Signals aus- |
    |                               |  zuführende Aktion angeben          |
    |_______________________________|_____________________________________|
    | sigpending()                  |  Unbearbeitete Signale prüfen       |
    |_______________________________|_____________________________________|
    | sigprocmask()                 |  Die aktuelle Signalmaske angeben   |
    |_______________________________|_____________________________________|
    | sigwait()                     |  Veranlassen, daß der Thread auf ein|
    |                               |  asynchrones Signal wartet          |
    |_______________________________|_____________________________________|






























Seite 8                      Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026