[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