[so] [tema 4] intrebari in legatura cu tema pe linux
George Ciobanu
so@cursuri.cs.pub.ro
Tue, 14 Dec 2004 08:55:55 -0800 (PST)
--- Tudor Golubenco <tudorik@mymail.ro> wrote:
>
>
> Buna seara,
>
> Threadurile de tip a trebuie notificate de incheierea unei operatii de
> I/O printr-un semnal dar, conform POSIX, oricare thread care nu blocheaza
> acel semnal il poate trata. Ca urmare, semnalul nu va intrerupe neaparat
> threadul care a inceput operatia de I/O.
>
> M-am gandit la solutia de a masca semnalul in toate celelalte threaduri in
> afara de cel ce a initiat operatia, dar asta ar limita numarul threadurilor
> de tip a la 32 (numarul de semnale realtime) sau chiar mai putin.
>
Ai dreptate, dar nu e nici o problema aici. Odata cu tipul semnalului poti
trimite si o valoare atasata prin care sa indici ce thread trebuia sa primeasca
semnalul.
> Este bine daca threadul principal trateaza semnalul de incheiere a operatiei
> si apoi notifica prin alta metoda threadul care trebuie sa raspunda
> clientului? De exemplu, folosind semafoare sau pthread_kill()?
>
Thread-ul principal trebuie sa se ocupe numai de conexiunile de pe retea. Odata
ce o conexiune a fost realizata, thread-ul principal ar tb sa paseze aceasta
cerere unui "working thread", in functie de tipul ei(a, b, ls).
> Si inca o intrebare: cat timp threadurile nu au nimic de facut, pot astepta
> la un semafor, sau ceva de genul asta?
>
Este obligatoriu chiar, avand in vedere ca neasteptarea duce la busy waiting.
Solutiile cu sleep nu sunt tolerate.
> Multumesc
>
>
Cu placere,
George
__________________________________
Do you Yahoo!?
Yahoo! Mail - You care about security. So do we.
http://promotions.yahoo.com/new_mail