线程锁原理,使用python原生方式模拟一把锁

1.锁原理

锁的底层是一个内存,如何来理解这个一块内存呢,假定变量a是一把锁,在线程进行获取锁的时候会判断改变量是否满足某一个值,如果是一个boolean,当a是true时线程能够获得锁,如果a是false代表这把锁被其他线程使用,线程会持续等待锁被释放,使用python实现

import threading
class A:
    v = 1
    lock = True
def a():
    while True:
        if A.lock == True:
            lock = False
            for i in range(100000):
                A.v += 1
            lock = True
        break
def b():
    while True:
        if A.lock ==True:
            lock = False
            for i in range(100000):
                A.v+=1
            lock = True
        break
if __name__ == '__main__':
    thread1 = threading.Thread(target=a)
    thread2 = threading.Thread(target=b)
    thread1.start()
    thread2.start()
    print(A.v)

A.lock就是一把锁

你可能感兴趣的:(线程锁原理,使用python原生方式模拟一把锁)