python锁示例

在这个示例中,我们使用 with lock: 语句来获取和释放锁。with 语句会确保在代码块执行完毕后自动释放锁,从而简化了代码并减少了出错的可能性。运行这个程序,你会看到 shared_resource 的最终值仍然是 200000,这表明锁成功地保护了共享资源。

import threading
import time

# 创建一个锁对象
lock = threading.Lock()

# 共享资源
shared_resource = 0

def thread_task(lock):
    global shared_resource
    for _ in range(100000):
        # 使用 with 语句获取和释放锁
        with lock:
            shared_resource += 1

def main():
    global shared_resource
    # 重置共享资源
    shared_resource = 0

    # 创建两个线程
    thread1 = threading.Thread(target=thread_task, args=(lock,))
    thread2 = threading.Thread(target=thread_task, args=(lock,))

    # 启动线程
    thread1.start()
    thread2.start()

    # 等待线程完成
    thread1.join()
    thread2.join()

    print(f"Final shared_resource value: {shared_resource}")

if __name__ == "__main__":
    main()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值