Thread chat client (20 answers)
Opened by tim at 2009-09-16 14:01

sid burn
 2009-09-16 18:16
#125889 #125889
User since
2006-03-29
1520 Artikel
BenutzerIn

user image
2009-09-16T15:57:17 betterworld
2009-09-16T15:47:15 sid burn
Quote
Threads hingegen wären auch eine vernünftige Alternative, in Perl ist es aber meist nicht so toll, mit Threads zu arbeiten.

Zumindest nicht mit den eingebauten "ithreads". Coro klingt aber ziemlich nett und wollte ich wenn ich irgendwann mal dazu komme nochmal ausprobieren.

Hilft Coro hier? Wenn ich das richtig verstanden habe, bietet es cooperative multi-tasking, und nicht etwa die Moeglichkeit, zwei read()-Calls gleichzeitig auszufuehren, und das ist ja das, was hier gebraucht wird.

Wenn du es in Verbindung mit AnyEvent nutzt. Coro::AnyEvent dann bietet es diese Möglichkeit.

Quote
Edit: Jedenfalls ist es das, was ich mit Threads oben meinte. Vermutlich kann man ueber Event-Systeme damit dann auch das Lesen von zwei Dateihandles realisieren, aber das läuft dann wahrscheinlich auch nur wieder ueber select() oder poll() etc.

Naja letztendlich auch egal wie er es genau anstellt. Solange die Parallelisierung erreicht ist die man wollte.

Ansonsten müsste er fork()en. Was ich aber auch nur unter Linux ähnlichen Betriebssystemen machen würde. Mit einer Event Schleife + Kooperativen Multitasking rennt er nicht so in die Probleme mit Thread Sicherheit, und hat generell wenig Platformprobleme + es ist schnell.

Ansonsten gefällt mir generell die Kombination AnyEvent + Coro + EV + IO::AIO

Vorallem da alles halt so gebaut wurde das es zusammen passt.
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de

View full thread chat client