[python] linux a vlakna

Zdenek Pavlas zdenek.pavlas na nextra.cz
Pondělí Květen 12 09:42:02 CEST 2003


Martin Hassman wrote:

> Je to normalni, ze se kazde vlakno zobrazuje 
> jako vlastni process (a ja jen zaspal dobu, protoze driv to tak dle me 
> nebylo)? Nebo je neco spatneho v mem programku ;-) ci pythonu?

To je uplne noumalni, Udo. Ma to nekolik vyhod:

- signal muzes poslat primo urcitemu threadu
- korektne funguji veci jako os.nice()
- top toho ukazuje vic :)

Bohuzel, na *BSD maji vsechny thready stejny PID, kernel je nejspis
vubec nevidi. To by nevadilo kdyby signaly poslane procesu chodily
nejak deterministicky, nejlepe vsem threadum.

Podle meho pozorovani chodi nahodne- chytne je asi ten thread ktery
je zrovna zablokovanej v kernelu. Tzn. thread ktery blokuje na 
allocate_lock()
signal nikdy nedostane, thready ktery blokujou na recv() nebo accept()
si to nejak vylosujou :(

Ja to resim tak ze na BSD posilam ten samy signal procesu tak dlouho
dokud nezabiju main thread a proces neskonci. Je to ale docela hnusny
reseni a funguje jen na ukonceni procesu- nevi nekdo o lepsim napadu?

-- 
Zdenek Pavlas



Další informace o konferenci Python