Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger

 << zurück
Linux-UNIX-Programmierung von Jürgen Wolf
Das umfassende Handbuch – 2., aktualisierte und erweiterte Auflage 2006
Buch: Linux-UNIX-Programmierung

Linux-UNIX-Programmierung
1216 S., mit CD, 49,90 Euro
Rheinwerk Computing
ISBN 3-89842-749-8
gp Kapitel 10 Threads
  gp 10.1 Unterschiede zwischen Threads und Prozessen
  gp 10.2 Thread-Bibliotheken
  gp 10.3 Kernel- und User-Threads
  gp 10.4 Scheduling und Zustände von Threads
  gp 10.5 Die grundlegenden Funktionen zur Thread–Programmierung
    gp 10.5.1 pthread_create – einen neuen Thread erzeugen
    gp 10.5.2 pthread_exit – einen Thread beenden
    gp 10.5.3 pthread_join – auf das Ende eines Threads warten
    gp 10.5.4 pthread_self – die ID von Threads ermitteln
    gp 10.5.5 pthread_equal – die ID von zwei Threads vergleichen
    gp 10.5.6 pthread_detach – einen Thread unabhängig machen
  gp 10.6 Die Attribute von Threads und das Scheduling
  gp 10.7 Threads synchronisieren
    gp 10.7.1 Mutexe
    gp 10.7.2 Condition-Variablen (Bedingungsvariablen)
    gp 10.7.3 Semaphore
    gp 10.7.4 Weitere Synchronisationstechniken im Überblick
  gp 10.8 Threads abbrechen (canceln)
  gp 10.9 Erzeugen von Thread-spezifischen Daten (TSD-Data)
  gp 10.10 pthread_once – Codeabschnitt einmal ausführen
  gp 10.11 Thread-safe (thread-sichere Funktionen)
  gp 10.12 Threads und Signale
  gp 10.13 Zusammenfassung und Ausblick


Rheinwerk Computing

10.11 Thread-safe (thread-sichere Funktionentoptop

Die Thread-Programmierung kann nur mit Bibliotheken realisiert werden, die als thread-sicher (thread-safe) gelten. Denn auch die Bibliotheken müssen die parallele Ausführung erlauben, um nicht ins Straucheln zu geraten. Mit der Einführung von Glibc 2.0 wurden die Linux-Threads in den Bibliotheken implementiert und müssen nicht extra besorgt werden. Somit ist strcmp() – auch wenn schon über 15 Jahre alt – thread-safe.

readdir() hingegen ist z. B. nicht thread-safe. Das Problem mit readdir() ist, wenn mehrere Threads denselben DIR-Zeiger verwenden, dass sie immer den aktuellen Rückgabewert vom zuvor erhaltenen Thread überschreiben. Als Alternative für Funktionen, die nicht als thread-safe gelten (auch wenn es nicht sehr viele sind), wurden thread-sichere Schnittstellen, die in der Regel mit der Endung _r (reentrante-Funktionen) gekennzeichnet wurden, eingeführt. Die thread-sichere Alternative zu readdir() lautet somit readdir_r().

Die Endung _r zeigt Ihnen außerdem nicht nur, dass die Funktion thread-sicher ist, sondern auch, dass diese Funktion keinen internen statischen Puffer verwendet (der beim Aufruf derselben Funktion in mehreren Threads jedes Mal überschrieben wird). Hierzu eine kurze Liste zu einigen gängigen Reentrante-Funktionen, deren genauere Syntax und Verwendung Sie bitte der entsprechenden Man-Page entnehmen.


Tabelle 10.1    Nicht thread-sichere Funktionen und die Alternativen

nicht thread-sicher Thread-sicher Bedeutung
getlogin getlogin_r Loginname ermitteln
ttyname ttyname_r Terminalpfadname ermitteln
readdir readdir_r Verzeichniseinträge lesen
strtok strtok_r String anhand Tokens zerlegen
asctime asctime_r Zeitfunktion
ctime ctime_r Zeitfunktion
gmtime gmtime_r Zeitfunktion
localtime localtime_r Zeitfunktion
rand rand_r (Pseudo-)Zufallszahlen generieren
getpwuid getpwuid_r Eintrag in /etc/passwd erfragen (via UID)
getpwnam getpwnam_r Eintrag in /etc/passwd erfragen (via Loginname)
getgrgid getgrgid_r Eintrag in /etc/group erfragen (via GID)
getgrnam getgrnam_r Eintrag in /etc/group erfragen (via Gruppenname)

 << zurück
  
  Zum Rheinwerk-Shop
Neuauflage: Linux-UNIX-Programmierung
Neuauflage:
Linux-UNIX-
Programmierung

bestellen
 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchtipps
Zum Rheinwerk-Shop: Linux-Server






 Linux-Server


Zum Rheinwerk-Shop: Das Komplettpaket LPIC-1 & LPIC-2






 Das Komplettpaket
 LPIC-1 & LPIC-2


Zum Rheinwerk-Shop: Linux-Hochverfügbarkeit






 Linux-
 Hochverfügbarkeit


Zum Rheinwerk-Shop: Shell-Programmierung






 Shell-
 Programmierung


Zum Rheinwerk-Shop: Linux Handbuch






 Linux Handbuch


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
Info





Copyright © Rheinwerk Verlag GmbH 2006
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern