类方法的多处理

时间:2017-09-15 15:31:42

标签: python python-2.7 multiprocessing

我想对类方法使用多处理。我从answer中发现'0' async componentWillMount() { await Font.loadAsync({ 'Rubik-Black': require('./node_modules/@shoutem/ui/fonts/Rubik-Black.ttf'), 'Rubik-BlackItalic': require('./node_modules/@shoutem/ui/fonts/Rubik-BlackItalic.ttf'), 'Rubik-Bold': require('./node_modules/@shoutem/ui/fonts/Rubik-Bold.ttf'), 'Rubik-BoldItalic': require('./node_modules/@shoutem/ui/fonts/Rubik-BoldItalic.ttf'), 'Rubik-Italic': require('./node_modules/@shoutem/ui/fonts/Rubik-Italic.ttf'), 'Rubik-Light': require('./node_modules/@shoutem/ui/fonts/Rubik-Light.ttf'), 'Rubik-LightItalic': require('./node_modules/@shoutem/ui/fonts/Rubik-LightItalic.ttf'), 'Rubik-Medium': require('./node_modules/@shoutem/ui/fonts/Rubik-Medium.ttf'), 'Rubik-MediumItalic': require('./node_modules/@shoutem/ui/fonts/Rubik-MediumItalic.ttf'), 'Rubik-Regular': require('./node_modules/@shoutem/ui/fonts/Rubik-Regular.ttf'), 'rubicon-icon-font': require('./node_modules/@shoutem/ui/fonts/rubicon-icon-font.ttf'), }); this.setState({fontsLoaded: true}); } 中的Pool无法直接挑选类方法,但通过在类外定义函数并添加其他参数,可以解决这个问题。该功能(类似的建议也在这个blog)。因此,我尝试通过以下简单程序来实现这一目标,该程序具有multiprocessing,我希望并行MyClass。但是,我没有得到任何结果(没有错误)。看来我错过了一些东西,但我觉得我差不多了!任何修复都非常感谢。

fun

1 个答案:

答案 0 :(得分:2)

您应该从主进程中致电close()join()。试试这个:

import multiprocessing

class MyClass:
    def fun(self, myList):
        print myList

def unwrap_fun(myList):
    obj = MyClass()
    return obj.fun(myList)

if __name__ == '__main__':
    mlp = multiprocessing.Pool(processes=multiprocessing.cpu_count())
    mlp.imap_unordered(unwrap_fun, range(1, 10))
    mlp.close()
    mlp.join()