栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Python中正确使用互斥锁

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Python中正确使用互斥锁

我不知道您为什么要使用Window的Mutex而不是Python的Mutex。使用Python方法,这非常简单:

from threading import Thread, Lockmutex = Lock()def processData(data):    mutex.acquire()    try:        print('Do some stuff')    finally:        mutex.release()while True:    t = Thread(target = processData, args = (some_data,))    t.start()

但是请注意,由于CPython的体系结构(即Global Interpreter
Lock
),无论如何一次您实际上只能运行一个线程-
如果其中许多线程受I / O约束,这很好,尽管您会想要释放尽可能多的锁,以便I / O绑定线程不会阻止其他线程运行。

对于Python
2.6和更高版本,一种替代方法是使用Python的

multiprocessing
软件包。它镜像了
threading
程序包,但是将创建 可以
同时运行的全新进程。更新您的示例很简单:

from multiprocessing import Process, Lockmutex = Lock()def processData(data):    with mutex:        print('Do some stuff')if __name__ == '__main__':    while True:        p = Process(target = processData, args = (some_data,))        p.start()


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/610877.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号