使用同步机制如锁、信号量等来控制并发访问,避免多个线程同时访问同一资源而造成数据竞争或者死锁的情况。下面是一个使用锁的示例代码:
import threading
# 定义一个锁对象
lock = threading.Lock()
# 定义共享的资源
shared_resource = 0
# 多个线程访问共享资源的函数
def worker():
global shared_resource # 声明为全局变量
# 获取锁
lock.acquire()
try:
# 处理共享资源
shared_resource += 1
finally:
# 释放锁
lock.release()
# 创建多个线程访问共享资源
threads = []
for i in range(10):
t = threading.Thread(target=worker)
threads.append(t)
# 启动线程
for t in threads:
t.start()
# 等待所有线程结束
for t in threads:
t.join()
# 打印共享资源
print("shared_resource:", shared_resource)
在上面的代码中,我们使用lock锁来控制多个线程对共享资源的访问。在每个线程访问资源前先获取锁,访问完成后再释放锁,这样就可以保证每个线程访问共享资源时不会发生冲突。
上一篇:并发处理目录和子目录中的文件
下一篇:并发处理重复序列