Finalspace
Lt. Junior Grade
- Registriert
- Sep. 2009
- Beiträge
- 334
andy_m4 schrieb:Ergänzung ()
Das kannst Du auch bei einem klassischen Toolkit haben. Gerade Swing kennt z.B. Modellklassen die Du dafür benutzen kannst um Deine Daten aus einer Datenbank, Datei, whatever zu holen.
Das nennt man dann Binding, bzw. Data-Binding und gibts schon sehr lange.
Delphi war meines wissens mit seiner Datenbankgeschichte und direkte UI-Binding (z.b. DBGrid) einer der ersten Vertreter in diesem Bereich.
andy_m4 schrieb:Das ist bei Green-Threads (Java-Sprech) so, aber nicht bei native-threads die auf mehrere CPU-Kerne verteilt werden.
siehe dazu: https://de.wikipedia.org/wiki/Thread_(Informatik)
Sofern sie auf mehrere Kerne aufgeteilt sind werden sie parallel ausgeführt.
Das gilt für SMT a-ka Hyerthreading. Sind die Threads auf mehrere Kerne verteilt hast Du natürlich auch alle Register doppelt.
Sollte man eigentlich alles wissen, wenn man seit 1995 programmiert. ;-)
Das ist das erste mal das ich den Begriff "Green Threads" höre, kannte den Begriff nicht - naja man lernt nie aus.
Habe ich doch geschrieben das die Instruktionen auf modernen CPU´s parallelisiert ausgeführt werden.
Aber bin kein Fachmann wenns um Multicoreprogrammierung geht - das nutze ich nur wenn ichs brauche, z.b. in einer Workerqueue und jeder Worker ist mit der Thread-Affinity-Mask einem Core zugewiesen. Mehr mache ich mit Threads privat nicht.
Beruflich in C#/Java nutze ich wenn es geht Threadpools, was im Grunde dem entspricht was ich in C mache -> Worker Queue.
andy_m4 schrieb:Das Problem ist, dass Multithreaded-Programmierung nicht unbedingt trivial ist und deshalb noch teilweise sehr verhalten eingesetzt wird. Auch GUI-Toolkits können nicht unbedingt immer damit umgehen, wenn ein zweiter Thread ihnen ins Handwerk pfuscht.
Meine UI´s laufen immer im Haupt-Render-Thread, da ist es mir egal, aber ja Multithreading ist kein leichtes Thema. Aber wenn Daten von anderen Threads abgerufen werden, dann wird das immer über CAS oder Ticketmutex geschützt, inkl. Lese -und Schreibbarrieren.
andy_m4 schrieb:Ich kenn jetzt Visual Studio nicht, aber entweder unterbricht der während einer Debugging-Session die jeweils anderen Threads oder Du hast eine Applikation gedebugt, die green-threaded ist.
Visual Studio kann ne Menge mit Threads machen, z.b. alle bis auf einen pausieren, welche wieder zurückholen, die Register anzeigen und noch mehr.
andy_m4 schrieb:Klassen musst Du auch in Java deklarieren. Oder was meinst Du mit Klassendeklaration ?
Ich rede von dem Unterschied zwischen Deklaration und Implementierung, sprich du definiert deine Klasse in einer Header-Datei und implementierst den Code in der Translation-Unit.
In Delphi macht man das nach dem "interface" aber vor dem "implementation" Abschnitt.
In C++ ist es schlichtweg immer getrennt in .h und .cpp.
andy_m4 schrieb:Genau. Properties verschleiern so ein bisschen, was da wirklich passiert. Also eigentlich genau das, was Du nicht magst. :-)
Jop ich mag Properties nicht, alles Public und fertig.
Nur wenn etwas explizit geschützt werden soll, dann wirds private inkl. public Property und Getter und Setter.
andy_m4 schrieb:Templates sind für Metaprogrammierung. Was Du vermutlich meinst, ist Metaprogrammierung zur Laufzeit.
Jop, ich mein Metaprogrammierung zur Laufzeit.
Zuletzt bearbeitet: