2020年6月23日 / 441次阅读 / Last Modified 2020年6月23日
多线程
python语法提供的with语句是很不错的,可以打开资源并在离开with block的时候,强行关闭,就算block里面有return都不用担心。
多线程中常常用到的Lock和RLock,也都可以使用with语法来编写代码。既可以减少代码行数,也确保了release。
举个例子吧,这个例子来自线程不安全的示例,我又稍微修改了一点:
from threading import Thread, Lock
number = 0
mutex = Lock()
def target():
global number
for _ in range(1000000):
with mutex:
number += 1
thread_01 = Thread(target=target)
thread_02 = Thread(target=target)
thread_03 = Thread(target=target)
thread_01.start()
thread_02.start()
thread_03.start()
thread_01.join()
thread_02.join()
thread_03.join()
print(number)
执行结果是3000000!说明with mutex OK!
-- EOF --
本文链接:https://www.pynote.net/archives/2076
前一篇:不要阻塞tkinter的mainloop
后一篇:多线程中的Condition对象
©Copyright 麦新杰 Since 2019 Python笔记