[python] multithreading & mutable sequence types
Marek Schmidt
xschmi01 na stud.fit.vutbr.cz
Pondělí Říjen 25 11:02:52 CEST 2004
Dobrý den,
s Pythonem teprve začínám a tak ještě nejsem příliž zběhlý v hledání
odpovědí na otázky... snažil jsem se... :-)
Jsou operace s pythonovským seznamem thread-safe?
Potřebuji udělat něco takového:
class KnightWhoSayNi(threading.Thread):
def __init__(self):
...
self.semafor = threading.Semaphore(0)
self.queue = []
def queueSayNi(self, target):
self.queue.append(target)
self.semafor.release()
def run(self):
while True:
self.semafor.acquire()
target = self.queue.pop(0)
sayNiToTarget(target)
queueSayNi se bude volat z jiných threadů. Můj dotaz pochopitelně zní:
Je bezpečné to udělat takto a nebo je nutné operace s queue uzavřít mezi
lock.acquire a lock.release? (případně, nejde to vše udělat nějak úplně
jinak a lépe? :-)
Díky za jakoukoliv odpověď.
Marek Schmidt
Další informace o konferenci Python