Python 中的线程锁是为了在多线程环境下保证对共享资源的互斥访问而设计的。可以使用 Python 的threading模块中的Lock类来创建线程锁。
以下是使用线程锁的一个简单示例:
import threading
创建一个锁对象
lock = threading.Lock()
定义一个需要使用锁的函数
def shared_resource():
print("访问共享资源")
定义两个线程函数
def thread1():
lock.acquire() # 获取锁
shared_resource()
lock.release() # 释放锁
def thread2():
lock.acquire() # 获取锁
shared_resource()
lock.release() # 释放锁
创建两个线程
t1 = threading.Thread(target=thread1)
t2 = threading.Thread(target=thread2)
启动线程
t1.start()
t2.start()
等待线程结束
t1.join()
t2.join()
CopyCopy
在这个示例中,我们创建了一个锁对象lock,并定义了一个需要使用锁的函数shared_resource。我们还定义了两个线程函数thread1和thread2,它们都会访问shared_resource。
在线程函数中,我们使用lock.acquire()获取锁,这样其他线程就不能访问共享资源。在完成访问后,我们使用lock.release()释放锁,允许其他线程访问共享资源。
通过这种方式,我们可以确保在多线程环境下对共享资源的互斥访问。