[so] tema4
George Ciobanu
so@cursuri.cs.pub.ro
Mon, 20 Dec 2004 17:09:26 -0800 (PST)
Salut,
Un fir de executie worker poate sa trateze mai multe cereri I/O, folosind
operatii asincrone.
Fiecare fir de executie worker trebuie sa aiba asociata o coada de cereri in
careserverul pune noile cereri respectand restrictia de incarcare egala (un
server asigneaza o cerere firului care are cele mai putine cereri in curs de
executie).
Firul preia cererea/cererile din coada lui si se ocupa de ea.
Modalitatea de notificare pentru cereri noi poate fi orice mecanism de
sincronizare vreti voi. Pentru tipul a, procesul este notificat printr-un
semnal la terminarea operatiei I/O pornite, moment in care se notifica firul
de executie care trebuie sa trateze cererea respectiva. Ar fi de dorit ca
mecanismul de sincronizare pentru cerere noua sa poata fi folosit si pentru
anuntarea unei cereri terminate. In acest caz, trebuie sa aveti grija ca
functiile folosite sa poata fi folosite in handler-ul de semnal. (Ca exemple,
malloc, si pthread_*, nu pot fi folosite in functiile de tratare a unui
semnal).
Pentru tipul b, avand in vedere ca mecanismul de asteptare a terminarii unei
cereri este aio_suspend, pentru a anunta existenta unei cereri noi puteti
folosi un semnal pentru a intrerupe functia aio_suspend. (Pentru a va asigura
ca semnalul trimis ajunge exact la thread-ul care trebuie notificat folositi
pthread_kill.)
La terminarea unei cereri, firul notificat trebuie sa trimita raspunsul catre
client si va folosi in acest scop o noua operatie asincrona (pe socket-ul
asociat cu clientul respectiv).
George
--- simona pencea <s_pencea@yahoo.com> wrote:
> salut.
> ma intrebam daca se pot da mai multe detalii despre
> cum face un thread sa trateze simultan mai multi
> clienti..
>
> multumesc
> simona
>
>
>
> __________________________________
> Do you Yahoo!?
> Take Yahoo! Mail with you! Get it on your mobile phone.
> http://mobile.yahoo.com/maildemo
> _______________________________________________
> so mailing list
> so@cursuri.cs.pub.ro
> http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/so
>
__________________________________
Do you Yahoo!?
Yahoo! Mail - Find what you need with new enhanced search.
http://info.mail.yahoo.com/mail_250