Ahoj,

na jakém operačním systému a jaké verzi to zkoušíš? Třeba Linux nevytváří 
vlákna, ale procesy. Vlákna jsou jen procesy, které spolu sdílí nějaké 
prostředky (paměť, otevřené soubory apod.). Viz clone(2). V Linuxu prostě každé 
"vlákno" má svoje PID, několik vláken má shodné TGID (thread group identifier), 
je to dobře vidět v /proc/*/stat. Protože POSIX se na vlákna dívá trochu jinak, 
funkce getpid() ve skutečnosti vrací TGID :)

Takže pokud jsi na Linuxu, ani není divu, že místo vláken vidíš procesy. Záleží 
na nástroji, kterým se na ty vlákna/procesy díváš, jak ti to podá. Možná bude 
problém tady. Python si totiž nevymýšlí vlastní věci, většina toho, co dělá, je 
akorát volání různých funkcí v libc apod., takže pokud je pozorována nějaká 
domnělá anomálie, spíš než v Pythonu bude mít původ někde ještě níže. Může i 
záležet na konkrétní verzi Linuxového kernelu nebo možná i libc.

Pokud se chceš nějak pohnout z místa, dodej víc informací. Především na čem 
jedeš (distribuce, její verze, verze kernelu), jak jsi vůbec zjistil, že máš 
vlákna nebo procesy, a případně nějaký ukázkový kód, ať je jisté, že do toho 
nezasahuje nějaká knihovna třetí strany (původně tato diskuze o něčem takovém 
byla, jestli se nepletu). A samozřejmě, jaký problém ti to způsobuje, který 
potřebuješ vyřešit :) Co jsem tak narychlo zkoušel threading.Thread na Debianu 
Lenny (x86 i x64), fungovalo to normálně (tzn. příkaz ps se tvářil, že je jeden 
proces se dvěma thready).

Jinak modul thread je opravdu built-in, takže žádné thread.by skutečně není.


PM


On 3.11.2010, at 18:36, Tomas Hnizdil wrote:

> Jsem trochu dale, zatim jsem dosel k tomu, ze za vytvareni procesu muze 
> patricne pojmenovana knihovna "threading" :)
> jeji verze pro 32/64 se nelisi, nicmene na amd64 strojich vytvori vlakna 
> (zustava jeden proces) a na i386 procesy (procesu je tedy vice). Tu rozdilnou 
> logiku bych tedy videl na knihovne thread, kterou si threading importuje a 
> vola z ni start_new_thread ...
> 
> Kazdopadne neco jako thread.py najit nemuzu, tohle nejspis nebude pythonovska 
> zalezitost, nebo se pletu?
> 
> v threading je i metoda _test(), zkousel jsem ji volat jak z pythonu 2.4.4, 
> 2.5 a 2.6.2 ve vsech nam to tvori procesy ... nesetkal se nekdo s necim 
> podobnym? kde najit onen thread?
> _______________________________________________
> Python mailing list
> [email protected]
> http://www.py.cz/mailman/listinfo/python

_______________________________________________
Python mailing list
[email protected]
http://www.py.cz/mailman/listinfo/python

Odpovedet emailem