擅长:python、mysql、java
<p>定义<code>__reduce__</code>以使<code>Friend</code>类的对象可pickle化(可序列化)以发送到其他进程</p>
<pre><code>import multiprocessing
def say_hello(friend):
print('Hello', friend.name, '!')
class Friend:
friends = {}
def __new__(cls, name):
if name in cls.friends:
return cls.friends[name]
else:
return super(Friend, cls).__new__(cls)
def __init__(self, name):
self.name = name
def __reduce__(self):
return self.__class__, (self.name,)
jack = Friend('jack')
ryan = Friend('ryan')
friends = [jack, ryan]
multiprocessing.Pool(2).map(say_hello, friends)
</code></pre>