在下面的示例代码中,我想恢复函数的返回值worker.我该怎么做呢?这个值存储在哪里?
示例代码:
import multiprocessing
def worker(procnum):
    '''worker function'''
    print str(procnum) + ' represent!'
    return procnum
if __name__ == '__main__':
    jobs = []
    for i in range(5):
        p = multiprocessing.Process(target=worker, args=(i,))
        jobs.append(p)
        p.start()
    for proc in jobs:
        proc.join()
    print jobs
输出:
0 represent!
1 represent!
2 represent!
3 represent!
4 represent!
[<Process(Process-1, stopped)>, <Process(Process-2, stopped)>, <Process(Process-3, stopped)>, <Process(Process-4, stopped)>, <Process(Process-5, stopped)>]
我似乎无法在存储的对象中找到相关属性jobs.
提前谢谢,blz
我有一大堆自定义对象,我需要执行独立(可并行化)的任务,包括修改对象参数.我尝试过使用Manager().dict和'sharedmem'ory,但两者都没有用.例如:
import numpy as np
import multiprocessing as mp
import sharedmem as shm
class Tester:
    num = 0.0
    name = 'none'
    def __init__(self,tnum=num, tname=name):
        self.num  = tnum
        self.name = tname
    def __str__(self):
        return '%f %s' % (self.num, self.name)
def mod(test, nn):
    test.num = np.random.randn()
    test.name = nn
if __name__ == '__main__':
    num = 10
    tests = np.empty(num, dtype=object)
    for it in range(num):
        tests[it] = Tester(tnum=it*1.0)
    sh_tests = shm.empty(num, dtype=object)
    for it in range(num):
        sh_tests[it] = tests[it]
        print sh_tests[it]
    print '\n' …