this is my code :
class tclass:
value = 0
lo = multiprocessing.Lock()
def increase(self):
print 'befor',self.value
with self.lo:
self.value+=1
print 'after',self.value
tc = tclass()
def starttclassvalue():
for i in range(10):
tc.increase()
if __name__ == '__main__':
multiprocessing.process.Process(target=starttclassvalue).start()
multiprocessing.process.Process(target=starttclassvalue).start()
multiprocessing.process.Process(target=starttclassvalue).start()
multiprocessing.process.Process(target=starttclassvalue).start()
why value set to zero and start from zero ?
out :
befor 0 after 1 befor 1 after 2 befor 2 after 3 befor 3 after 4 befor 4 after 5 befor 5 after 6 befor 6 after 7 befor 7 after 8 befor 8 after 9 befor 9 after 10 befor 0 after 1 befor 1 after 2 befor 2 after 3 befor 3 after 4 befor 4 after 5 befor 5 after 6 befor 6 after 7 befor 7 after 8 befor 8 after 9 befor 9 after 10 befor 0 after 1 befor 1 after 2 befor 2 after 3 befor 3 after 4 befor 4 after 5 befor 5 after 6 befor 6 after 7 befor 7 after 8 befor 8 after 9 befor 9 after 10 befor 0 after 1 befor 1 after 2 befor 2 after 3 befor 3 after 4 befor 4 after 5 befor 5 after 6 befor 6 after 7 befor 7 after 8 befor 8 after 9 befor 9 after 10
why value in tclass is not 30 at end program ?