Filip Štědrosnký wrote: > 1) myslel jsem, že se nejedná o threaded aplikaci ale asyncore/asynchat, > alespoň jsem to tak z kontextu pochopil
Aha, ja jsem tak nejak predpokladal, ze asyncore.loop() pobezi ve svem threadu, pardon. > 2) stringy jsou neměnitelné, takže to není append, ve skutečnosti se > spojí, vytvoří se nový string a ten se teprve přiřadí, to už atomická > operace je No, mohl bych poprosit o referenci na nejaky zdroj, ktery tvrdi, ze od zacatku provadeni vyrazu "buffer += foo" az po jeho dokonceni se nedostane ke slovu jiny thread? Problemem v dane situaci je prave moznost prepnuti do jineho threadu mezi "spojenim stringu" a "prirazenim do promenne". Netvrdim, ze to shodi interpret, ale ze v promenne buffer mohou byt necekana data. Vzhledem k tomu, ze se celkem bezne [1] tvrdi, ze += 1 na int *neni* atomicke, tak soudim, ze append na (immutable) stringy rovnez nebude. > 3) vzhledem k pythonímu GIL je vše (mnohdy až příliš) thread-safe a pokud > nepoužíváte nějaké neobvyklé C extenze, nemusíte zamykat skoro nic Silne nesouhlasim, viz znovu [1]. Dalsi vygoogleny odkaz je thread [2]. [1] http://effbot.org/zone/thread-synchronization.htm [2] http://mail.python.org/pipermail/python-list/2000-April/030896.html Hezky vecer, -jkt -- cd /local/pub && more beer > /dev/mouth
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Python mailing list [email protected] http://www.py.cz/mailman/listinfo/python
