Multithreading: Per Library oder Sprache?
-
Ich habe mich gefragt, ob es nicht sinnvoll wäre, Multithreading als Bestandteil der Programmiersprache zu definieren. Bisher kenne ich keine einzige Sprache, die das tut. C++ ist hier schon fast am schlimmsten, Bibliotheken gibt es zuhauf und die wenigsten taugen wirklich in jedem Fall. Warum gibt es keine Keywords für Parallelisierung, wie es Keywords für Schleifen, If/Else und alles andere gibt?
-
weil man das mit einer bibliothek viel besser loesen kann.
man kann alles in die sprache packen, aber sobald du etwas in die sprache packst, kannst du es nicht mehr anpassen. deshalb: so wenig wie moeglich fix in die sprache einbauen - lieber alles ueber bibliotheken loesen.
mal abgesehen davon, dass multithreading wie wir es heute kennen einfach nur furchtbar ist.
-
Es gibt Sprachen, die ein besonderes Augenmerk auf Parallelisierbarkeit legen,z.B. Erlang. Dass das nicht das gleiche wie Multithreading ist weiß ich, aber es geht in die gleiche Richtung und ist eigentlich sogar vorteilhaft.
-
Multithreading ist doch erst seit wenigen Jahren im Mainstream wirklich interessant, Stichwort Dualcore-CPUs. Weiterhin ist Multithreading kein einfaches Thema. Es gibt aber Bibliotheken die doch Multithreading einfach supporten, wie z.B. boost.thread oder OpenMP. Deshalb kann ich die Kritik nicht wirklich nachvollziehen.
Da Multithreading jetzt erst wirklich interessant wird, wird auch die nächste C++-Norm Multithreading-Features enthalten.
-
Fragebert schrieb:
Ich habe mich gefragt, ob es nicht sinnvoll wäre, Multithreading als Bestandteil der Programmiersprache zu definieren. Bisher kenne ich keine einzige Sprache, die das tut.
Du hast noch nie von "Java" gehoert?
-
Blue-Tiger schrieb:
Fragebert schrieb:
Ich habe mich gefragt, ob es nicht sinnvoll wäre, Multithreading als Bestandteil der Programmiersprache zu definieren. Bisher kenne ich keine einzige Sprache, die das tut.
Du hast noch nie von "Java" gehoert?
wobei sich streiten laesst ob synchronized nun so toll ist - die kosten dafuer sind ja nicht trivial und fuer viele situationen braucht man sowieso besseres locking...
-
zB OpenMP ist doch im Grunde eine Spracherweiterung von C++.
-
rüdiger schrieb:
zB OpenMP ist doch im Grunde eine Spracherweiterung von C++.
Naja das wäre zu eng gefasst, die OpenMP Erweiterung zielt auf C, C++ und Fortran ab.
fragbert schrieb:
[...][Bisher kenne ich keine einzige Sprache, die das tut. [...]
Es gibt auch Sprachen direkt für parallele Programmierung, z.B. Unified Parallel C, High Performance Fortran oder Linda (Koordinationssprache). Kommt auch immer drauf an welches parallel ausgerichtete "Programmiermodell" du verwenden möchtest bzw. welche "Systemarchitektur" zugrunde liegt.
-
Shade Of Mine schrieb:
mal abgesehen davon, dass multithreading wie wir es heute kennen einfach nur furchtbar ist.
warum ?
-
fräger schrieb:
Shade Of Mine schrieb:
mal abgesehen davon, dass multithreading wie wir es heute kennen einfach nur furchtbar ist.
warum ?
http://www.c-plusplus.net/forum/viewtopic-var-t-is-208738-and-highlight-is-multithreading.html
Fragebert schrieb:
Ich habe mich gefragt, ob es nicht sinnvoll wäre, Multithreading als Bestandteil der Programmiersprache zu definieren.
Abgesehen von vielleicht Datei- und Konsolen-I/O sollte nichts Bestandteil einer Sprache sein, dass sich nicht auch auf allen Plattformen implementieren lässt.