C++: Multithreading

Aufgaben zu Threads

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Der Trainer stellt Ihnen zwei Aufgaben, von denen er eine sogleich beispielhaft löst. Daneben erhalten Sie Infos über eine Webseite, auf der Sie eine verständlich gehaltene Dokumentation zu Threads finden.
02:59

Transkript

In dieser Lektion möchte ich Ihnen Aufgaben zu Threads vorstellen. Darüber hinaus habe ich noch weitere Informationen. Zuerst zu den Aufgaben. Zwei Aufgaben habe ich vorbereitet. Die erste führe ich vor, daher erkläre ich die 2. Die 2 ist relativ naheliegend. Führen Sie doch die Funktion "std::thread::hardware concurrency" auf Ihrer Plattform aus und schauen Sie mal, welchen Wert Sie bekommen. Ich erwarte, dass Sie ein Wert größer wie 0 bekommen. Daher habe ich hier ein Link hinterlegt, unter "Weitere Informationen", sehen Sie hier. Der verweist Sie auf eine englischsprachige Seite und auf diese Seite ist die Dokumentatin zu den Threads extrem gut beschrieben. Nun aber zur eigentlichen Aufgabe, die ich gleich auch live vorführen werde. Sie können sich sicher das Programm "thread arguments.cpp" errinnern. Um was ging es bei dem Programm? In dem Programm habe ich ein Kinder-Thread gestartet und die Aufgabe des Kinde-Threads bestand darin, zu einem initialen Wert 1000, 6*5 zu addieren, sodass am Schluss 1030 rauskam. Tatsächlich hatte der Kinder-Thread aber nicht die Zeit seine Berechnung durchzuführen, so kam nur 1000 heraus. Was ich jetzt machen werde in dem Beispiel ist, das ist die Aufgabe, ich werde die Schlafdauer des Kinds variieren, sodass wir fast alle Ergebnisse zwischen 1000 und 1030 erwarten können. Und los geht es mit der Aufgabe. Hier ist das gleich modifizierte Programm. Die Modifikation besteht darin, dass der Kinder-Thread jetzt von der Variableanzahl an Millisekunden schläft. Sie sehen, hierbei gebe ich die Anzahl der Millisekunden und hier sage ich, wie viel Millisekunden er tatsächlich schlafen soll. In diesem Fall, wenn ich Milli, zum Beispiel 1000 übergebe, schläft der zwischen jeder iteration 1000 mal eine Millisekunde, sprich eine Sekunde. Ich starte jetzt nicht nur einen Threads, ich starte 20 Threads. Jeder Thread schläft länger um "i*50" länger. Gut. Jetzt führe ich das Programm aus und Sie sehen, dass wir fast alle Ergebnisse zwischen 1000 und 1030 erhalten. Sie sehen 1030, 1005, 1000 erhalte ich auch, 1010, 1015, 1020, 1025 auch. Also ich erhalte alle Ergebnisse zwischen 1000 und 1030. Schon sieht man im Programm zwei Dinge. Erstens, dass Sie nie das gleiche Ergebnis bekommen. Das ist also vollkommen undefiniert was wir für Ergebnisse bekommen, eben zwischen 1000 und 1030. Zweitens das Spielen mit der Zeit in Programmen nicht definiert macht, das heißt, das Programm ist immer noch undefiniert.

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!