- Labornetzteil AliExpress         
Ergebnis 1 bis 10 von 94

Thema: pthread: was genau macht "joinable" und was macht "detached"?

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #35
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.03.2011
    Beiträge
    1.899
    Zitat Zitat von HaWe Beitrag anzeigen
    wieso schreibst du jetzt was zu Windows?
    Weil das "Multitasking" von Windows 3.11 nur Threads kannte und keine Tasks. Unix benutzt schon immer Tasks und wird sicher nie sein "Multitasking" auf so eine unsichere Umgebung wie Threads umstellen, POSIX hin oder her.
    Aber lassen wir das mit der Historie und den Grundsatzdiskussionen:
    pthread ist ANSI C99 Standard, pthread ist relativ einfach anzuwenden (sogar einfacher als std::thread finde ich), und es ist seit langem erprobt, bewährt und ohne Bugs.
    Es geht nicht um Bugs im System, es geht um die, die Du programmierst. Führt ein Bug in einem deiner Threads zum Absturz oder überschreibt einer deiner Threads die Variablen eines anderen Threads, stürzt nicht nur der eine Thread sondern auch alle anderen ab. Dies ist der Nachteil, den man sich einhandelt, wenn man sich die Komplexität im Umgang mit Tasks sparen will. Und dies ist auch der Grund, warum Windows seit NT auch auf Tasks basiert (und damit erst wirklich brauchbar geworden ist).

    Immerhin ist pthread zur Implementierung deutlich weniger komplex als Subprozesse, daher würde ich pthread in jedem Falle den Vorzug geben.
    "There is no such thing as a free lunch"

    MfG Klebwax

    P.S.
    - dennoch müssen hnterher noch Speicher und Pointer etc. aufgeräumt werden, z.B. existiert immer noch ein thread-Handle über die thread-ID, und auch die wird erst durch pthread_join gelöscht.
    - auch wenn der Thread sich nicht selber beendet, sondern er über pthread_cancel beendet wurde, ist der Thread handle noch nicht geschlossen, auch das muss noch durch ein zusätzliches pthread_join erledigt werden.
    Das alles und noch viel, auf das du noch kommen wirst, erledigt bei einer Task das Betriebssystem.

    Zitat Zitat von Klebwax Beitrag anzeigen
    Zum Schluß stellt man dann fest, daß man ein eigenes Betriebssystem programmiert hat, das aber längst auf dem System vorhanden ist. Das eigene ist auch nicht einfacher als das vorhandene, dafür ist es nur von einem selbst getestet und es fehlen hunderte Seiten man-Pages. Wer schreibt schon sowas zum eigenen Code? Wegen der Threadüberwachung ist es sogar langsamer als ein System, das auf Tasks basiert.
    Geändert von Klebwax (20.06.2019 um 09:30 Uhr)
    Strom fließt auch durch krumme Drähte !

Ähnliche Themen

  1. Antworten: 10
    Letzter Beitrag: 01.11.2017, 12:53
  2. Antworten: 2
    Letzter Beitrag: 15.06.2011, 21:18
  3. "Optimization" macht debuggen schwer
    Von yaro im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 05.02.2010, 20:40
  4. "Soft-Reset?" und "Finger-Interrupt?"
    Von trapperjohn im Forum Asuro
    Antworten: 8
    Letzter Beitrag: 10.06.2008, 23:02
  5. ASM: was machen "swap" und "cbr" genau?
    Von RHS im Forum AVR Hardwarethemen
    Antworten: 3
    Letzter Beitrag: 18.08.2004, 17:16

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad