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 ?