Hallo,
Für eine ordentliche Lösung muss man schon ziemlich tief in die Trickkiste greifen. Du solltest also erst mal überlegen was eigentlich Dein Ziel ist und dann prüfen welchen Aufwand Du bereit bist dafür zu investieren.
Grüße
Erik
man hätte man ja auch so machen können, dass eine variable wie bool has_message auf true gesetzt wird.Du meinst der Message-Handler setzt nur eine einzelne Variable und das Programm muss pollen? Wo ist da der Vorteil gegenüber einem Syscall "HabIchNeMessageDannGibMirDieGleichAnsonstenWarteNicht()"? Okay der Syscall benötigt etwas mehr CPU-Takte aber das Prinzip ist exakt das selbe.
hab ich dich richtig verstanden, dass mein beispiel oben besser ist?Du meinst das von heute Früh 8:44? Das ist ungefähr die einfachste Lösung. Die kann man am schnellsten implementieren, bietet nur sehr wenig Fehlerpotential und ist für einen Monolithen erstmal recht brauchbar. Das Problem ist wie wartest Du auf mehrere verschiedene Events? Ein HTTP-Server mit sehr vielen gleichzeitig zu bearbeitenden Anfragen wird wohl kaum für jede TCP-Connection einen eigenen Thread starten (das geht zwar macht man aber nur bei Servern die nur wenig belastet sind). In der Win-API gibts dafür WaitForMultipleObject(), das stellt eine recht brauchbare Lösung für das Problem dar bis Du auf einer Multi-Core-Maschine auf die Idee kommst für jede CPU einen eigenen Thread starten zu wollen wo dann alle gleichzeitig WaitForMultipleObject() aufrufen wollen, auch das ist lösbar aber Du verstehst bestimmt was ich meine.
Für eine ordentliche Lösung muss man schon ziemlich tief in die Trickkiste greifen. Du solltest also erst mal überlegen was eigentlich Dein Ziel ist und dann prüfen welchen Aufwand Du bereit bist dafür zu investieren.
Grüße
Erik

Übersicht
Wiki
Hilfe
Suche
Einloggen
Registrieren
Drucken

Gespeichert





