это мой код:запустить две нити одновременно, и оба они манипулируют одной переменной
import threading
x=0
class a(threading.thread)
def run(self):
global x
for i in range(1000000):
x+=1
class b(threading.thread)
def run(self):
global x
for i in range(1000000):
x-=1
def run():
a().start()
b().start()
//after both thread done
print x
run()
Я ожидаю, что это показать мне, 0 (х = 0), но каждый раз, когда я запускаю это результат довольно отличается (менее ноль)
что с этим не так?
Я попытался запустить ваш код; и я сразу же ударил синтаксическую ошибку на третьей строке. Может быть, вы пытаетесь опубликовать код, который действительно работает? – GhostCat
его должно быть threading.Thread вместо thread.thread – famagusta
См. [Это] (http://stackoverflow.com/questions/1717393/is-the-operator-thread-safe-in-python) post – FujiApple