Python使用线程锁

随着技术不断地发展,之前的CPU只有一个核心,现在已经有多达几十个,甚至几百个。这就意味着多线程的程序可以让每个线程可以独占一个CPU核心来运行了。既然每个核心是独立的,那么就会像多人爬山,总有人跑得快,每个人到达山顶的顺序会不一样。如果让多人接力地送一批物资到山上,那么这批人就必须要配合才行,否则中间掉链子。同理,在多线程的程序里,由于CPU的时间片轮转不同,导致线程执行顺序不确定;多核心存在,导致每个核心运行的先后顺序也不一样。因此,如果有一个资源是独占的,必须让多个线程配合才可以执行下去。比如在电脑里,一般情况下显示卡只有一个,这时使用多线程去绘图,如果不控制每个线程的顺序,就会导致A线程画半圆之后,B线程在输出文字,导致整个屏幕显示的东西是杂乱无章的。

    为了保证数据同步,应当让同一资源在同一时刻只允许一个线程访问。这就要使用Lock函数,它将返回一个线程锁实例。在线程代码中调用它的方法acquire来申请资源的使用,如果此线程顺利申请到访问权,那么Lock对象就会锁住,别的线程不能再访问此资源,只有线程调用release方法之后才可以让其它线程来访问。

    先采用没有锁的情况下执行一下,看看结果,代码如下:

count = 30

lock = Lock() #创建全局锁对象

#定义线程工作函数</

©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值