python 进程池加锁
时间: 2024-01-04 22:20:09 浏览: 94
进程池加锁是为了在多进程环境下对共享资源进行保护,避免多个进程同时访问和修改同一个资源而导致冲突。下面是一个示例代码,演示了如何在Python中使用进程池加锁:
```python
from multiprocessing import Pool, Lock
def demo01(pid, lock):
lock.acquire()
with open('file.txt', "a+", encoding='utf-8') as f:
f.write(pid)
lock.release()
if __name__ == '__main__':
lock = Lock()
pool = Pool()
for i in range(3):
i = str(i)
pool.apply_async(demo01, args=(i, lock))
pool.close()
pool.join()
```
在上述代码中,首先创建了一个进程池对象`pool`和一个进程锁对象`lock`。然后,使用`apply_async`方法向进程池中添加任务,每个任务都会调用`demo01`函数,并传入进程ID和进程锁作为参数。在`demo01`函数中,通过调用`lock.acquire()`来获取进程锁,然后执行需要保护的操作,最后调用`lock.release()`释放进程锁。
需要注意的是,进程池中的任务是并行执行的,每个任务都会独立获取和释放进程锁,以保证对共享资源的安全访问。
阅读全文