# coding=utf-8
# 在执行的时候cpu不允许切换
# 1.创建同步锁
import threading

# 使用同步锁,让线程执行的时候只能是同一个CPU,缺点:暂时这段执行成为了串行,但是串行只是串行被加锁的部分,其他部分仍然是并发
l = []
# 1.在调用的时候,使用threading模块声明锁
# (串行,但是串行只串行一部分,其他部分仍然可以实现多现场
# 公共资源,必须加锁,才能保证线程安全,任何语言都有一样)
lock = threading.Lock
# 2.在函数中上锁
# 也就是锁死线程,只允许当前cpu进行操作,不允许切换
lock.acquire()  # 上锁___
# 中间写需要被保护的代码:一般都是对公共资源进行操作,才需要被保护
# 3.函数执行完之后一定要释放锁
lock.release()  # 释放锁___
