[python] vlakna,cpu
Jirka Vejrazka
jirka.vejrazka na gmail.com
Pátek Listopad 19 18:49:51 CET 2010
No, on multiprocessing pouziva zamky i interne pri pristupu k datovym
strukturam, takze jestli se nepletu tak v tomhle pripade nepotrebujes
explicitni zamky (ale viz dokumentace, uz je to dlouho co jsem ho
pouzival).
Opravdu by v tomhle pripade nebyly lepsi fronty? Nevim, jak dlouho
trva spocitani "dalsiho bodu", ale pokud to neni casove narocna
operace, tak bych si dokazal predstavit ze cekani na global_index bude
zasadne ovlivnovat jednotlive procesy.
Neni tohle spis uloha pro "pool of workers"? Viz priklad z dokumentace
multiprocessingu:
http://docs.python.org/library/multiprocessing.html#using-a-pool-of-workers
Dalsi tipy:
- pouziti memcached pro global_index[0]. Vypada to, ze to je prosty
citac a tady by memcached bylo mozna uplne nejlepsi reseni (jednoducha
instalace pokud pracujes na Linuxu)
- reseni "klient-server", kdy jeden "ridici" proces ma datove
struktury a ostatnim zadava ulohy do fronty a hotove vysledky se
vraceji v jine fronte. Pak bys nemusel resit synchronizaci pristupu k
datovym strukturam.
To jsou jen takove tipy, vic asi neporadim.
Jirka
Další informace o konferenci Python