通常情况下,python标准库中的multiprocessing.Lock对象是不可以作为进程池Pool的参数,这是因为进程锁不能通过pickle序列化。以下提供两种方法允许在多进程使用过程中引入进程锁,解决资源竞争问题。
参数绑定
实例化Manager()和创建Manager.Lock(),但是使用Manager会产生大量的进程,同时所有获取锁和释放锁的请求都会发送给Manager,这样会造成进程资源的消耗。
|
|
将进程锁置为全局变量
|
|
团结 紧张 严肃 活泼
No results found
通常情况下,python标准库中的multiprocessing.Lock对象是不可以作为进程池Pool的参数,这是因为进程锁不能通过pickle序列化。以下提供两种方法允许在多进程使用过程中引入进程锁,解决资源竞争问题。
实例化Manager()和创建Manager.Lock(),但是使用Manager会产生大量的进程,同时所有获取锁和释放锁的请求都会发送给Manager,这样会造成进程资源的消耗。
|
|
|
|