Buchempfehlung Multithreading



  • Außer einem Buch sind sicher auch Webseiten über Pattern bei IO und Multithreading für Dich interessant. Auf dem Server von Douglas Schmidt findet man noch eine Menge zum Thema. Die Pattern sind absolut praxisnah; sie werden in mehreren größeren Softwaresystemen eingesetzt.

    Gruß
    Werner



  • hustbaer schrieb:

    @Shade Of Mine:
    Kennst du die 4-Kern CPUs von AMD und Intel nicht (die es seit Monaten (AMD) bzw. Jahren (Intel) gibt), oder meinst du nur dass die nicht der Rede wert sind?

    Die sind nicht im Consumer Bereich wirklich stark vertreten?
    Und ob 3 oder 4 Kerne ist nicht so gravierend. Mit den 8 virtuellen Kernen von Nehalem wird der nächste große Sprung kommen.

    Wir haben schon einige 8 Kerne Desktops hier und ein paar weniger 4 Kerne Desktops - aber 2 Kerne ist aktuelle einfach die Masse.



  • Das Thema ist uebrigens _sehr_ umfangreich und sehr kompliziert.

    Du übertreibst maßlos.



  • Hacker schrieb:

    Das Thema ist uebrigens _sehr_ umfangreich und sehr kompliziert.

    Du übertreibst maßlos.

    Im Gegenteil. Er untertreibt maßlos. Leider. 😞


  • Administrator

    Konrad Rudolph schrieb:

    Hacker schrieb:

    Das Thema ist uebrigens _sehr_ umfangreich und sehr kompliziert.

    Du übertreibst maßlos.

    Im Gegenteil. Er untertreibt maßlos. Leider. 😞

    Hab noch die entscheidenden Punkte markiert. 🙂

    Gibt es eigentlich auch Bücher zu Multithreading, welche Boost.Thread verwenden? Vor allem im Hinblick auf den nächsten C++ Standard wäre das ziemlich praktisch.
    Ja, ich weiss, normalerweise kann man da sehr einfach die Sachen übertragen, aber praktisch wäre es schon.

    Grüssli



  • Also ich find's übertrieben.



  • Jester schrieb:

    Also ich find's übertrieben.

    machst du mir dann mal kurz ne block-freie implementierung einer einfach verketteten liste?

    das problem bei multithreading ist nicht es korrekt hinzubekommen, das ist simpel. einfach alles und jeden synchronisieren. null problemo. das problem ist es, es richtig zu machen.



  • Ich muss Shade Of Mine Recht geben. Denn mit Thread-Programmierung sollte man generell vorsichtig sein.

    Wenn Threads ungestört durch andere Threads arbeiten dürfen, sind Threads lieb. Aber wehe sie müssen untereinander kommunizieren oder auf gemeinsame Resourcen zugreifen. Dann können schnell Probleme wie Deadlocks, Livelocks oder inkonsistente Daten enstehen. Und solche Fehler von Hand zu finden ist kein Zuckerschlecken.

    Aber sicherlich werden dies einige wieder als trivial abtun.



  • Shade Of Mine schrieb:

    das problem bei multithreading ist nicht es korrekt hinzubekommen, das ist simpel. einfach alles und jeden synchronisieren. null problemo. das problem ist es, es richtig zu machen.

    *zustimm*

    Nur alles und jeden zu synchronisieren ist auch nicht der Weisheit letzter Schluß, dabei kann es sehr schnell passieren dass ein multithreaded Programm langsamer wird als das gleiche Problem als single-threaded implementiert.
    Die echte Schwierigkeit ergibt sich darin, alles korrekt _und_ effizient zu machen, sonst ist alles Multi-Thread-Gewurstel ohne Sinn.

    ...wenn man die lock-freie einfach verkettete Liste algorithmisch schon auf dem Papier hat heisst es nicht, dass sie auch real noch korrekt ist - siehe ABA-Problem.



  • http://www.amazon.de/Modern-Multithreading-Implementing-Debugging-Multithreaded/dp/0471725048

    Bestes Buch!

    MfG,
    Bücherpro (Experte im Bereich guter Bücher)



  • Wer Threads wirklich verstehen will sollte sich mit der Arbeitsweise von Betriebssystemen beschäftigen, da dort die Threads zu Hause sind. Ausführlich und sehr gut beschreibt der Klassiker "Tannebaum" das Thema:

    http://www.amazon.de/Modern-Operating-Systems-2-e/dp/0130926418

    Hier drin gibt es ein Kapitel zur QT Threadprogrammierung:

    http://www.amazon.de/Qt-GUI-Entwicklung-mit-umfassende-Handbuch/dp/3836210304/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1219243141&sr=1-1

    Es lohnt sich auch bei Boost einen Blick reinzuwerfen:

    http://www.boost.org/doc/libs/1_36_0/doc/html/thread.html



  • Ihr seit einfach doof, deswegen fällt es euch so schwer.



  • @Shade of Mine und andere
    danke für eure Vorschläge.
    Werde mir das erste Buch mal bestellen.

    Die Patterns werde ich mir am Abend mal anschauen.



  • Shade Of Mine schrieb:

    Jester schrieb:

    Also ich find's übertrieben.

    machst du mir dann mal kurz ne block-freie implementierung einer einfach verketteten liste?

    Ach komm. Findest Du Fahrrad fahren schwer? Nicht? Fährst Du dann mal kurz auf einem Brückengeländer über ne Brücke?

    Ich hab ja auch nicht gesagt, dass es brutal einfach ist. Aber so brutal schwer wie hier manche tun ist es nun auch wieder nicht. Man kann das alles lernen.



  • Jester schrieb:

    Shade Of Mine schrieb:

    Jester schrieb:

    Also ich find's übertrieben.

    machst du mir dann mal kurz ne block-freie implementierung einer einfach verketteten liste?

    Ach komm. Findest Du Fahrrad fahren schwer? Nicht? Fährst Du dann mal kurz auf einem Brückengeländer über ne Brücke?

    Und wo ist da jetzt die Schwierigkeit 😕



  • Jester schrieb:

    Shade Of Mine schrieb:

    Jester schrieb:

    Also ich find's übertrieben.

    machst du mir dann mal kurz ne block-freie implementierung einer einfach verketteten liste?

    Ach komm. Findest Du Fahrrad fahren schwer? Nicht? Fährst Du dann mal kurz auf einem Brückengeländer über ne Brücke?

    Ich hab ja auch nicht gesagt, dass es brutal einfach ist. Aber so brutal schwer wie hier manche tun ist es nun auch wieder nicht. Man kann das alles lernen.

    Wenn man es kann ist es halbwegs einfach.
    Dass es aber nicht einfach zu lernen ist sieht man daran wie oft Leute die glauben es bereits zu können ganz grobe Fehler machen. Und sich dann zum Teil noch weigern einzusehen dass es ein Fehler ist selbst wenn man es ihnen 10x erklärt.

    Also ich bleibe dabei: Multithreading ist sau-schwer.

    p.S.: natürlich kann man auch sagen Multithreading ist einfach, bloss sind 99% der Leute total doof. Ändert die eigentliche Aussage aber nicht, sondern verschiebt sozusagen nur den subjektiven Nullpunkt.



  • Ist ja okay, dass Du das als sau-schwer empfindest, ich sehe das halt anders.



  • Ich *empfinde* es nicht als sau-schwer sondern als relativ einfach, da ich damit umgehen kann.
    Ich stufe es als sau-schwer ein.
    Unterschied.



  • Mir auch recht. 😃

    Mußt ja schon ein enorm toller Hecht sein. 🤡


Anmelden zum Antworten