Open Source im professionellen Einsatz
Linux-Magazin 10/2012
302

Wie geht es weiter?

Dieser Artikel über Promise und Future schließt die Miniserie über Multithreading in C++11 vorerst ab. Wer noch den einen oder anderen Artikel zum Thema wünscht, schreibt dem Autor unter mailto:cpp@linux-magazin.de.

Die Multithreading-Fähigkeit von C++11 hat nämlich noch ein paar interessante Features zu bieten. Dazu gehören das sichere Initialisieren von Daten in Threads, Thread-lokaler Speicher und insbesondere atomare Datentypen sowie das sehr anspruchsvolle C++11-Speichermodell. Dieses Modell definiert, in welcher Reihenfolge atomare Datenoperationen in einem Thread ausgeführt werden und wann diese Operationen zwischen den Threads sichtbar sind.

In den Erläuterungen zu Listing 1 hieß es relativ oberflächlich, dass sich weder Future noch Promise kopieren lassen, sie müssten verschoben werden. Diese einstweilige Oberflächlichkeit hat einen Grund: Der nächste Artikel dieser Reihe wird sich genau diesem Thema widmen. Er erläutert die erwähnten Rvalue-Referenzen und deren Anwendung in der Move-Semantik sowie beim Perfect Forwarding.

Move-Semantik erlaubt es, an der Performance-Schraube eines Programms zu drehen, da sie das aufwändige Kopieren eines Objekts durch das wirtschaftliche Verschieben ersetzt. Perfect Forwarding hingegen löst ein recht einfaches, aber in C++ bisher ungelöstes Problem: Funktionsargumente generisch annehmen und unverändert weitergeben. (mhu)

Infos

  1. Rainer Grimm, "Im Gleichtakt": Linux-Magazin 08/12, S. 88
  2. C++ Reference: http://en.cppreference.com/w/cpp
  3. Promise: http://en.cppreference.com/w/cpp/thread/promise
  4. Future: http://en.cppreference.com/w/cpp/thread/future
  5. Vollständige Quelltext-Listings zu diesem Artikel:http://www.linux-magazin.de/static/listings/magazin/2012/10/cpp

Der Autor

Rainer Grimm arbeitet seit 1999 als Software-Entwickler bei der Science + Computing AG in Tübingen. Insbesondere hält er Schulungen für das hauseigene Produkt SC Venus. Im Dezember 2011 ist sein Buch "C++11: Der Leitfaden für Programmierer zum neuen Standard" im Verlag Addison-Wesley erschienen.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 3 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • C++11

    Die C++11-Reihe beschäftigt sich weiter mit dem Synchronisieren von Threads. Diesmal setzt der Chef-Thread Bedingungsvariablen ein, um die Tätigkeit seiner Mitarbeiter-Threads zu koordinieren.

  • C++11

    Die neue Zeitbibliothek von C++11 erweist sich als elementarer Bestandteil der Threading-Schnittstelle: Sowohl Threads, Locks und Bedingungsvariablen als auch Futures haben ein Verständnis von Zeit. Dank ihrer Unterstützung kann ein Entwickler unterschiedliche Wartestrategien verfolgen.

  • Java-Threads

    Seit der ersten Version von Java sind Threads ein fester Bestandteil der Sprache. Das macht vieles einfacher als in anderen Programmiersprachen. Neuere Versionen der Java-Bibliothek bieten darüber hinaus viele nützliche Klassen für Locking und Synchronisierung.

  • C++

    Beim deklarativen Programmieren drückt der C++-Programmierer unter anderem mit Hilfe von Schlüsselwörtern aus, was er erreichen möchte. Der Compiler kümmert sich dann um den weiteren Weg.

  • Sauber eingefädelt

    Der Standard für Threads unter Linux ist heute die Native Posix Threads Library (NPTL). Die Bibliothek überzeugt durch große Kompatibilität zum Standard und hohe Performance. Dieser Artikel untersucht die neue Threading-Engine und zeigt, wie Benutzeranwendungen davon profitieren.

comments powered by Disqus

Stellenmarkt

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.