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

Threads erzeugen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Threads müssen nur mit einem Arbeitspaket ausgestattet werden und schon beginnen sie ihre Arbeit. Das Arbeitspaket kann eine Funktion, ein Funktionsobjekt oder einer Lambda-Funktion sein.
03:04

Transkript

In dieser Lektion möchte ich Ihnen das Erzeugen eines Threads und das Starten eines Threads vorstellen. Darüber hinaus zeige ich Ihnen auch noch die Theorien der Anwendung. Ein Thread erhält seine ausführbare Einheit, die sogenannte thread of execution, und startet diese sofort. Darüber hinaus benötigt er noch die Header-Datei "thread". Was ist eine ausführbare Einheit? Eine ausführbare Einheit ist alles, was sich wie eine Funktion anfühlt. Das kann tatsächlich eine Funktion sein, wie hier, ein Funktionsobjekt, das ich in-place instanziiere, oder eine Lambda-Funktion. Und damit kommen wir schon zur Praxis. Hier sehen Sie drei Threads der Anwendung. Jeder Thread führt sein Arbeitspaket aus. Für den ersten Thread ist es eine Funktion, diese Funktion "helloFunction" hier. Der zweite Thread verwendet ein sogenanntes Funktionsobjekt. Das ist ein Objekt einer Klasse, für die der Klammer-Operator (den sehen Sie hier) überladen ist. Ja, und dieser Thread gibt in diesem Fall "Hello C++11 from a function object" aus. Sie benötigen immer die Thread-Header, damit eben die notwendige Funktionalität da ist. Und schon geht's los mit Programm. Schauen wir uns es mal an. Der Thread t1 bekommt seine Funktion "helloFunction" hier, und startet sofort. Der Thread t2 ist eine Instanz der Klasse "HelloFunctionObject". Ich habe das Objekt auch dann" helloFunctionObjekt" genannt. Und die Instanz davon verwende ich in meinem Thread t2-Konstrukteur. Und der Thread t3 verwendet Lambda-Funktion aus C++11. Sie sehen hier diese Lambda-Funktion, die leite ich mit den eckigen Klammern ein. Und der Funktionsscript der Lambda-Funktion besteht aus der Ausgabe "Hello C++11 from lambda function." Ja, und der Erzeuger eines Threads muss sich um die Lebenszeit seines Kindes kümmern. In diesem Fall ruft der Erzeuger für seine Kinder join auf. Das heißt, der Erzeuger – der main-Thread – wartet, bis seine Kinder – t1, t2 und t3 – fertig sind, und dann fährt er mit seiner Arbeit fort. In diesem Fall ist das Programm beendet. Hier, was noch fehlt, ist jetzt dieses Programm auszuführen und das tue ich hier: threadCreate Und Sie sehen: "Hello C++11 from a function". Jeder der 3 Threads gibt seine Ausgabe auf std: :cout. Ja, und hier sehen Sie: "Hello from a function", "from a function object" und die "lambda function". Jetzt schauen Sie mal: wenn ich das wiederhole, die Reihenfolge ist hier nicht gewährleistet. Klar. Welcher Thread als erstes zum Zuge kommt? Sie sehen, das variiert ab und zu. In dieser Lektion habe ich Ihnen das Erzeugen und das Starten von Threads vorgestellt. In diesem Fall hat mein Erzeuger-Thread oder Vater-Thread auf seine Kinder gewartet, indem er join aufgerufen hat.

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!