多进程使用随手记录-python

2018年5月13日15:56:35 发表评论 369 views

1、变量作用范围

会出现UnboundLocalError: local variable 'sum' referenced before assignment的错误。在多进程编程中会出现这样的变量不能共享的提示。

2、共享变量

shared memory

这样就可以实现变量共享了,但是这又会导致另外一个问题数据不一致,我这里想要得到的sum值是20,但有的时候会小于20。

变量共享方法2-Manager

通过Manager()来创建共享变量

manager支持的数据类型有: list, dict, Namespace, Lock, RLock, Semaphore, BoundedSemaphore, Condition, Event, Barrier, Queue, Value and Array.

manager相对于第一种shared memory有两个优点:a、manager支持的数据类型比第一种要丰富;b、manager的变量通过网络在不同服务器上的进程间进行分享。但是,manager的一个缺点就是比shared memory方式更慢。

3、加锁实现变量同步

这样就解决另2中数据不一致的问题。

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: