import threading

n=0

class ComptaDescompta(threading.Thread):

    def __init__(self, nVegades, critic, delta):
        super().__init__()
        self.nVegades = nVegades
        self.critic = critic
        self.delta = delta

    def run(self):
        global n
        for i in range(self.nVegades):
            self.critic.acquire()
            n = n + self.delta
            self.critic.release()


def principal():
    nVegades=1000000
    critic=threading.Lock()
    t1= ComptaDescompta(nVegades, critic,  1)
    t2= ComptaDescompta(nVegades, critic, -1)
    t1.start()
    t2.start()
    t1.join()
    t2.join()
    print(n)

if __name__=="__main__":
    principal()
