python线程锁

import time,threading
balance = 0
lock = threading.Lock()
def change_it(n):
    global balance
    balance = balance + n
    balance = balance - n
def run_thread(n):
    for i in range(1000000):
        #先获取锁
        lock.acquire()
        try:
            change_it(n)
        finally:
            #改完了一定要释放锁
            lock.release()

t1 = threading.Thread(target=run_thread,args=(5,))
t2 = threading.Thread(target=run_thread,args=(8,))

t1.start()
t2.start()
t1.join()
t2.join()
print(balance)

线程锁的简单实现。

原文地址:https://www.cnblogs.com/uglyliu/p/6165530.html