python加锁

  • Post author:
  • Post category:python
  • Post comments:0评论

在多线程编程时,为了避免线程间的竞争和冲突,我们需要使用锁机制来保护共享资源。在Python中,可以使用threading模块提供的Lock类来实现线程锁。

以下是一个示例代码,展示如何在Python中使用锁:

import threading

# 共享资源
a = 0

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

# 线程函数
def increment():
    global a
    # 获取锁
    lock.acquire()
    try:
        for i in range(100000):
            a += 1
    finally:
        # 释放锁
        lock.release()

# 创建多个线程
threads = [threading.Thread(target=increment) for i in range(10)]

# 启动多个线程
for thread in threads:
    thread.start()

# 等待所有线程执行完成
for thread in threads:
    thread.join()

# 输出结果
print(f"Final result: {a}")

在上述代码中,我们首先创建了一个锁对象lock,然后在线程函数increment()中使用lock.acquire()方法获取锁,在执行结束后使用lock.release()方法释放锁,这样就保证了a这个共享资源在任意时刻只有一个线程能够进行修改。最后我们使用多个线程来执行increment()函数,最终输出的结果应该为a的值为1000000。

文章作者: 张拓
文章链接: http://www.xssl.online/python%e5%8a%a0%e9%94%81/
版权声明: 本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0 许可协议。转载请注明来自 张拓的博客
浏览次数: 985

张拓

陕西西安蓝田张拓QQ1070410059。一生所求不过“心安”二字。 然,尘世多纷扰。

发表回复