with lock的作用

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕燕燕 2021-08-13 12:05:41

同学,你好。with是一种上下文管理协议,他提供一个有效的机制,让代码更简练,同时在异常产生时,清理工作更简单。with self.lock表示引入锁,with open()表示执行open()函数打开一个文件

with的语法为:with expression [as target]

expression:是一个需要执行的表达式;

target:是一个变量或者元组,存储的是expression表达式执行返回的结果,可选参数。

祝:学习愉快!

  • 提问者 大可计划 #1

    锁使用时, 不是需要上锁(acquire)和释放锁(release)吗
    我想知道的是, with lock, 是不是帮我们做了acquire和release, func1和func2的效果是不是一样的

    import threading
    lock = threading.Lock()

    def func1():
        with lock:
            print(123)


    def func2():
        lock.acquire()
        print(123)
        lock.release()


    if __name__ == '__main__':
        func1()
        func2()


    2021-08-13 13:56:43
  • 好帮手慕燕燕 回复 提问者 大可计划 #2
    同学,你好!是的,with lock表示自动打开锁、自动释放锁,func1和func2是等价的。祝:学习愉快!
    2021-08-13 16:21:51
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师