Tockra
Lt. Commander
- Registriert
- Dez. 2008
- Beiträge
- 1.063
Hey Leute,
Ich schaue mir aktuell aus Interesse die Boost Bibiliothek an und lese dafür diese Anleitung: http://www.highscore.de/cpp/boost/
Die ist eigentlich super, allerdings bin ich aktuell beim Kapitel 7 über Asynchrone Ein und Ausgaben angekommen.
Mit diesen kann ich mich noch nicht wirklich anfreunden.
Dort werden einige Beispiele genannt, aber eigentlich finde ich bei keinem den großen Vorteil an asio, deshalb wollte ich einfach mal fragen, ob mir das jmd. etwas genauer erklären kann.
Für mich ist eine Synchrone Funktion (Gegenteil von Assynchrone Funktion) ein ganz normaler Funktionsaufruf, sprich ich muss nach dem Aufruf warten, bis der Funktionsaufruf zurückkehrt.
Ein Assynchroner Aufruf ist für mich Aufruf, auf dessen Rückkehr man nicht warten muss. Das wäre für mich z.B.
Für mich ist ein Assynchroner Aufruf in Aufruf, der in einem anderen Thread ausgelagert wird und somit Assynchron und parrallel geschieht.
Das scheint Asio aber nicht zu machen, sondern die "ioservice.run()" Methode scheint alle zuvor gesammelten Assynchronen Aufrufe erst auszuführen, sprich alles was nach dem Assynchronen Aufruf und vor dem run geschieht kann den Assynchronen Aufruf verhindern (z.B. durch Blockieren).
Ich verstehe jetzt nicht so wirklich den großen Vorteil. Der AH Effekt tritt da bei mir nicht ein, weil ich anstelle der io_service.run() genau so gut die Assynchronen Aufrufe tätigen kann. Dazu kommt noch das run() auch blockiert, so dass man den Aufruf der Funktionen also einfach nur paar Zeilen tiefer geschoben hat...
Bitte erleuchtet mich
Gruß
T
Ich schaue mir aktuell aus Interesse die Boost Bibiliothek an und lese dafür diese Anleitung: http://www.highscore.de/cpp/boost/
Die ist eigentlich super, allerdings bin ich aktuell beim Kapitel 7 über Asynchrone Ein und Ausgaben angekommen.
Mit diesen kann ich mich noch nicht wirklich anfreunden.
Dort werden einige Beispiele genannt, aber eigentlich finde ich bei keinem den großen Vorteil an asio, deshalb wollte ich einfach mal fragen, ob mir das jmd. etwas genauer erklären kann.
Für mich ist eine Synchrone Funktion (Gegenteil von Assynchrone Funktion) ein ganz normaler Funktionsaufruf, sprich ich muss nach dem Aufruf warten, bis der Funktionsaufruf zurückkehrt.
Ein Assynchroner Aufruf ist für mich Aufruf, auf dessen Rückkehr man nicht warten muss. Das wäre für mich z.B.
Code:
void test() {
//do something
}
int main() {
thread t(test);
//do something
return 0;
}
Für mich ist ein Assynchroner Aufruf in Aufruf, der in einem anderen Thread ausgelagert wird und somit Assynchron und parrallel geschieht.
Das scheint Asio aber nicht zu machen, sondern die "ioservice.run()" Methode scheint alle zuvor gesammelten Assynchronen Aufrufe erst auszuführen, sprich alles was nach dem Assynchronen Aufruf und vor dem run geschieht kann den Assynchronen Aufruf verhindern (z.B. durch Blockieren).
Ich verstehe jetzt nicht so wirklich den großen Vorteil. Der AH Effekt tritt da bei mir nicht ein, weil ich anstelle der io_service.run() genau so gut die Assynchronen Aufrufe tätigen kann. Dazu kommt noch das run() auch blockiert, so dass man den Aufruf der Funktionen also einfach nur paar Zeilen tiefer geschoben hat...
Bitte erleuchtet mich

Gruß
T