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
