from threading import Thread, Lock, Semaphore
from time import sleep
from random import randint

mutex = Lock()
comptador = 0

def fill():
    global comptador
    mutex.acquire()
    sleep(0.001*randint(1,5))
    c = comptador
    sleep(0.001*randint(1,5))
    r = c + 1
    comptador = r
    mutex.release()

if __name__ == '__main__':
    fills=[]
    for i in range(10):
        f = Thread(target=fill, args= ())
        fills.append(f)
        f.start()
    for f in fills:
        f.join()
    print(comptador)

