什么语言里面都会有锁,只要有线程就会有锁。
1,线程是指一个进程中的子任务,多线程就是指一个进程中同时运行多个子线程。比如有两个变量a,b,两个线程一和二,线程一的作用是改变a的值,线程二的作用是改变b的值,这样不管这两个线程怎么运行,a和b的值都不互相干扰。但是如果线程一和线程二的作用都是操作同一个变量c呢,我们为了要保证c的值得精确改动,我们一般要先让线程一去操作c,线程一执行完之后再让线程二去操作c,在这个过程中,线程一操作的时候线程二是不允许对c做改动的,这个时候我们就用Threading库中的线程锁了,就像厕所单间?一个人进去之后要把门锁了(acquire()),以确保第二个人不能进去,等第一个人出来之后(release()),第二个人才能进去,这个锁就是厕所门锁,把厕所单间锁起来不让其他人可以操作。同理,python中的线程锁,就是线程一把变量c锁起来,等线程一操作完c之后,再release。接着线程二就acquire,这就是我对线程锁的理解。
2,LOCK处于锁定的时候,就像厕所单间其他人进不去了,两种状态,厕所处于锁上和没锁,两种方法,锁厕所,打开厕所。
自己加锁的意义是:让它不想切换就不切换,避免发生冲突。