zoukankan      html  css  js  c++  java
  • python 中的Array,Value及内存共享

    官网文档的例子

     1 from multiprocessing import Process, Value, Array
     2 
     3 def f(n, a):
     4     n.value = 3.1415927
     5     for i in range(len(a)):
     6         a[i] = -a[i]
     7 
     8 if __name__ == '__main__':
     9     num = Value('d', 0.0)
    10     arr = Array('i', range(10))
    11 
    12     p = Process(target=f, args=(num, arr))
    13     p.start()
    14     p.join()
    15 
    16     print num.value
    17     print arr[:]

    结果:

     1 3.1415927

    2 [0, -1, -2, -3, -4, -5, -6, -7, -8, -9] 

    分析:模式Array,Value达到内存共享的目标

    如果是自建一个对象并绑定一项value属性,及另一个list.再调用子函数。在子函数中改动对象的value及另一个list.是没有作用的。

    在C++中可以通过引用,在子函数中一样可以改动

     官档中有如下:

    A manager returned by Manager() will support types list, dict, Namespace, Lock, RLock, Semaphore, BoundedSemaphore, Condition, Event, Queue, Value and Array. For example,

  • 相关阅读:
    Adobe Flash Player 设置鼠标点不到允许或者拒绝!
    bzoj2096
    bzoj2789
    LA3353
    poj2594
    bzoj2427
    bzoj1076
    bzoj2818
    bzoj3668
    bzoj2006
  • 原文地址:https://www.cnblogs.com/liunnis/p/4612491.html
Copyright © 2011-2022 走看看