Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

C++: Multithreading

Chronologie

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
C++ besitzt eine definierte Threading-Schnittstelle. Dies ist aber erst der Anfang: Mit den nächsten Standards, C++17 und C++20, wird C++ Transactional Memory, verbesserte Features und Parallelismus-Erweiterungen erhalten.
05:47

Transkript

In dieser Lektion möchte ich Ihnen einen Überblick geben über gut 20 Jahre C++ Geschichte. Insbesondere gehe ich auf die Änderungen und Erweiterungen ein, die die Bibliothek in C++ betreffen. Los ging die Geschichte 1998 mit dem ersten ISO-Standard. Dieser enthielt im Wesentlichen drei Komponenten: als erstes, die Container und Algorithmen, die Standard Template Library, kurz STL, dann die Strings Library oder die Strings Bibliothek und zuletzt die I/O Streams – die Bibliothek für die Ein- und Ausgabe. Weiter ging es 2005 mit dem Technischen Report 1. Was enthielt der Technische Report 1? Der enthielt dann 13 Bibliotheken, die Bestandteil von C++11 wurden. Von diesen 13 Bibliotheken haben es tatsächlich aber nur 12 in C++11 geschafft. Die Grundlage für den Technischen Report 1 waren die über Hundert Bibliotheken der Boost-Bibliothek. Die Boost-Bibliothek ist eine Ansammlung von sehr hochwertigen C++ Bibliotheken, die schon lange im weltweiten Einsatz sind. Und so haben wir 2005 die Bibliotheken enthalten zum Umgang mit regulären Ausdrücken, zu Smart Pointer, Hashtabellen, Zufallszahlen und zur Zeitbibliothek. Damit sind wir fast schon in der Jetztzeit. 2011 wurde der zweite große C++ Standard veröffentlicht und der hieß dann entsprechend auch "C++11" oder auch "C++Eleven". Was enthielt er? Im Wesentlichen drei Ergänzungen zum Technischen Report 1: neue Algorithmen, zusätzliche Smart Pointer und (und das ist der wichtigste Punkt für uns) Multithreading. Nun sind wir schon in Zukunft. Was können wir von den nächsten Standards erwarten? 2017 ist der nächste Standard geplant, da ist relativ gut absehbar, was da drin sein wird. Ich nenne mal hier die Feature. Was drin sein wird - ist ein Dateisystem. Das basiert auf dem Boost Dateisystem. Mit C++17 bekommen wir auch die erweiterte Version der Standard Template Library. Insbesondere die Algorithmen der Standard Template Library werden automatisch parallelisierend sein. Man wird also eine Policy mitgeben können, mit der man sagen kann, soll der Algorithmus sequenced oder parallelisierend ausgeführt werden. Was können wir noch erwarten, aber erst mit 2020? Es wird eine Bibliothek zum Umgang mit Netzwerken geben, die wird auf ASIO basieren. Darüber hinaus wird es Erweiterungen zu Arrays geben, die mit C++11 hinzukamen. Mit dieser Erweiterung von Arrays wird es möglich sein, zur Laufzeit die Größen eines Arrays zu ändern. Dann wird es Transactional Memory geben. Transactional Memory ist eine sehr interessante Idee aus der Datenbanktheorie, die vor allem hilft, Multithreading Programme einfacher zu schreiben. Was ist die Idee von der Transactional Memory? Das Ganze basiert auf der Idee von Transaktionen. Transkationen sind Aktionen, die Sie ausführen, und am Ende der Transaktion cheken Sie, ob die Ausgangsbedingungen der Transkationen noch gelten. Gelten sie, werden die Transaktionen veröffentlicht. Gelten sie nicht mehr, findet ein sogenannter Rollback statt. Das geschieht beliebig oft. Sie führen also mit der Transaktion Aktionen optimistisch aus und cheken beim Veröffentlichen, ob die Sie sie veröffentlichen dürfen. Dann wird es Erweiterung zur Concurrency und zum Parallelismus geben. Mit C++20 werden wir wohl letztens Iberia bekommen, sowas ähnliches wie Semaphoren, und was extrem entspannend ist, die Futures, die Bestandteil von C++11 sind, werden in C++20 erweitert werden. Was heißt es? Die Futures in C++11 haben ein großes Problem: man kann sie nicht komponieren. Mit C++20 wird es möglich sein, Operationen wie "Than" zu machen oder "Wenn ... any" oder "Wenn…or". Das heißt, wenn ein Future fertig ist, startet automatisch der nächste: "Than". Wenn irgendeiner der Futures fertig ist: "Wenn … any", startet der nächste Future, oder wenn alle Futures fertig sind, startet der nächste Future "Wenn ... or". Concepts Lite hat eine lange Geschichte in C++. Sie sollten eigentlich schon Bestandteil von C++11 sein, sollte jetzt auch Bestandteil von C++17 sein, wird aber nicht vor C++20 kommen. Um was geht's bei Concepts-Lite? Concepts Lite stellt ein Typsystem für Templates dar. Das heißt, wenn Sie im generischen Algorithmus haben ein Algorithmus, der über Typen parametrisiert ist, können Sie Bedingungen an Typen stellen, wie zum Beispiel: dieser Typ muss copy-konstruierbar sein, um im Allgemeinen Algorithmus verwenden zu können. Damit kriegen Sie schönere Fehlermeldungen und Code, der eindeutig ausdrückt, was er vorhat. Zum letzten Punkt "Module": Module werden Header-Dateien in C++ ergänzen und tendenziell überflüssig machen, aber auch nicht vor 2020, sprich: vor C++20. In dieser Lektion habe ich Ihnen einen Überblick gegeben, über gut 20 Jahre C++ Historie, so dürfen wir gespannt sein, was alles in nächster Zeit noch kommen wird.

C++: Multithreading

Lernen Sie die High-Level Threading-Schnittstelle in C++ kennenb und nutzen, die Sie in Form von Threads, Tasks, Locks und Bedingungsvariablen zur Anwendung bringen.

2 Std. 40 min (39 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:16.08.2016

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!