python多线程同步机制Lock

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python多线程同步机制Lock相关的知识,希望对你有一定的参考价值。

#!/usr/bin/env python
# -*- coding: utf-8 -*-


import threading
import time

value = 0
lock = threading.Lock()


def add():
global value
with lock:
new_value = value + 1
time.sleep(0.001)
value = new_value

if __name__ == ‘__main__‘:
threads = []
for i in range(100):
t = threading.Thread(target=add)
t.start()
threads.append(t)

for t in threads:
t.join()

print value
print ‘Main end‘



如果将with lock去掉,将得不到最终的值100.


以上是关于python多线程同步机制Lock的主要内容,如果未能解决你的问题,请参考以下文章

python lock, semaphore, event实现线程同步

Java多线程之Lock(锁)

多线程18:Lock锁

Python之多线程:线程互斥与线程同步

python多线程编程—同步原语入门(锁Lock信号量(Bounded)Semaphore)

python多线程编程5: 条件变量同步-乾颐堂