On Thu, 24 Feb 2005, Alex 'CAVE' Cernat wrote:

> recunosc ca programarea multithread nu m-a pasionat niciodata (si sincer
> n-am prea inteles-o); dar ca sa ma lamuresc si eu o data pentru
> totdeauna, in cazul thread-urilor variabilele din threaduri diferite dar
> acelasi proces sunt de fapt aceleasi (adica modificand o variabila
> intr-un thread se modifica si variabila corespunzatoare din celalalt(e)
> thread(uri) - ma rog, poate ma exprim in termeni de procese si shared
> memory, dar in fond ideea conteaza)

De fapt chestia cu variabilele aceleasi la threaduri e mai low-level. E 
vorba ca address space-ul este shareuit de thread-uri si prin urmare 
variabilele globale (inclusiv cele static si heap-ul) este shareuit. 
Stack-ul este privat fiecarui thread (si deci si variabilele locale). Mai 
exista suport pt a declara variabile unice per thread accesibila dupa o 
"keye" (adica le dai un label si la fiecare thread ai acces la o copie 
privata a lor).

In principal e cum ai spus, modificand o variabila globala din un thread
se modifica si in celelalte. Prin urmare intri pe taramul race conditions,
locking, serializing access si un nightmare pt debugging.

> Alex

-- 
Mihai RUSU                                    Email: [EMAIL PROTECTED]
GPG : http://dizzy.roedu.net/dizzy-gpg.txt    WWW: http://dizzy.roedu.net
                       "Linux is obsolete" -- AST

--- 
Detalii despre listele noastre de mail: http://www.lug.ro/


Raspunde prin e-mail lui