Threads in C++

karl_bsd

Active Member
Hallo,

ich bin gerade dabei ein wenig mit C++ (clang 6.0.0) unter FreeBSD 11.2 zu experimentieren. Dabei ist mir aufgefallen, dass wenn ich Standard-Thread-Klasse std::thread benutze, beim Linken Fehler angezeigt werden: Eine pthread_create Funktion wäre undefiniert. Wenn ich nun libpthread dazulinke, funktioniert das Ganze. Bedeutet das, dass in der Standard-Lib intern libpthread benutzt wird, um std::thread zu implementieren? Aber die Implementation ist nicht komplett "versteckt", es muss noch libpthread dazugelinkt werden?
Irgendwie überrascht mich das ein bisschen. Oder mache ich etwas grundsätzlich falsch?

Viele Grüße,
Karl
 
Alle neueren Operationen in C++, die mehr oder weniger intensiv mit dem Betriebssystem verzahnt sind, sind im Grunde Wrapper auf ihre OS-spezifischen C-Äquivalente. Dabei ist ein Großteil in Headern mittels Templates implementiert und somit landet in deinem Code kein "Wrapper"-Funktionsaufruf, welcher dann wiederum die entsprechende OS-Funktion aufruft, sondern es landet direkt der Aufruf der OS-Funktion bei dir.

Somit musst du auch entsprechende Bibliotheken dazu linken, je nachdem welche Plattform du verwendest.
 
ich finde es effizienter, das C++ Kauderwelsch schlicht denen zu überlassen,
die sowas für ihre OO geschädigten Hirne brauchen -
und ganz einfach C zu nutzen!

Duck & weg! ;-)
 
hehe
Nichts gegen C++.
Wenngleich ich es auch versuche zu vermeiden und eher zu C greife, wenn ich mal näher ans Metall möchte. Wenns dann aber etwas mehr sein soll, dann hat C++ gegenüber C durchaus seine Vorzüge.
 
ich finde es effizienter, das C++ Kauderwelsch schlicht denen zu überlassen,
die sowas für ihre OO geschädigten Hirne brauchen -
und ganz einfach C zu nutzen!

Duck & weg! ;-)

Was wiedermal keinen weiter bringt und niemandem was hilft.
Wenn ihr flamen wollt, dann macht das im Geplauder und haltet euch an die normalen Regeln des Anstands.
 
Zurück
Oben