Threads vs. Events
Verfasst: Mi Okt 30, 2013 8:16 pm
Ich habe so meine Probleme die Funktionsweise von eventbasierten Applikationen zu verstehen.
Siehe auch http://red-badger.com/blog/2013/01/29/t ... ent-based/
Den Ablauf einer Anfrage würde ich kurz so umreißen:
Client -> Server (eventbasiert) -> InQueue -> Worker -> OutQueue/Callback -> Client
So, das alles in einem Prozess. Oder auch nicht, wenn die Queue ausgelagert ist.
Daraus ergeben sich folgende Fragen:
- Wie werden die Sockets verwaltet ? Wird ein internes Array gehalten wo dann z.B. 10000 Sockets drinliegen ?
- Falls das so ist, muss der Socket ja erstmal warten, bis seine Anfrage asynchron abgearbeitet wird (Stichwort Timeout) ?
- Die Sockets sind im non blocking mode ? Wie ist das bei TCP/IP, das ist doch per default im blocking mode ?
- Erhält er die Antwort dann vom selben Socket, ergo dann auch vom selben Prozess ?
- Die eigentliche Arbeit des Workers wird im selben Prozess oder von einem anderen Prozess erledigt ?
Danke !
Siehe auch http://red-badger.com/blog/2013/01/29/t ... ent-based/
Den Ablauf einer Anfrage würde ich kurz so umreißen:
Client -> Server (eventbasiert) -> InQueue -> Worker -> OutQueue/Callback -> Client
So, das alles in einem Prozess. Oder auch nicht, wenn die Queue ausgelagert ist.
Daraus ergeben sich folgende Fragen:
- Wie werden die Sockets verwaltet ? Wird ein internes Array gehalten wo dann z.B. 10000 Sockets drinliegen ?
- Falls das so ist, muss der Socket ja erstmal warten, bis seine Anfrage asynchron abgearbeitet wird (Stichwort Timeout) ?
- Die Sockets sind im non blocking mode ? Wie ist das bei TCP/IP, das ist doch per default im blocking mode ?
- Erhält er die Antwort dann vom selben Socket, ergo dann auch vom selben Prozess ?
- Die eigentliche Arbeit des Workers wird im selben Prozess oder von einem anderen Prozess erledigt ?
Danke !