当先锋百科网

首页 1 2 3 4 5 6 7

1,线程是指一个进程中的子任务,多线程就是指一个进程中同时运行多个子线程。比如有两个变量a,b,两个线程一和二,线程一的作用是改变a的值,线程二的作用是改变b的值,这样不管这两个线程怎么运行,a和b的值都不互相干扰。但是如果线程一和线程二的作用都是操作同一个变量c呢,我们为了要保证c的值得精确改动,我们一般要先让线程一去操作c,线程一执行完之后再让线程二去操作c,在这个过程中,线程一操作的时候线程二是不允许对c做改动的,这个时候我们就用Threading库中的线程锁了,就像厕所单间?一个人进去之后要把门锁了(acquire()),以确保第二个人不能进去,等第一个人出来之后(release()),第二个人才能进去,这个锁就是厕所门锁,把厕所单间锁起来不让其他人可以操作。同理,python中的线程锁,就是线程一把变量c锁起来,等线程一操作完c之后,再release。接着线程二就acquire,这就是我对线程锁的理解。

2,LOCK处于锁定的时候,就像厕所单间其他人进不去了,两种状态,厕所处于锁上和没锁,两种方法,锁厕所,打开厕所。

3,RLOCK,这个意思是线程一获取了c的操作之后再次acquire,这个我不是特别明白为什么acquire之后还需要再acquire一次。这个可能等用到的时候才能理解吧,但是我觉得先把上面这两点理解清楚了,就不影响往后学习python了,希望大神能给我们讲一下什么场合会用到RLOCK。