Python 是否需要通过';自我’;在使用ADING.Thread或带有类方法的multiprocessing.Process时指向参数
例如,通过类方法使用线程或多处理Python 是否需要通过';自我’;在使用ADING.Thread或带有类方法的multiprocessing.Process时指向参数,python,multithreading,multiprocessing,Python,Multithreading,Multiprocessing,例如,通过类方法使用线程或多处理 class ExampleClass: def run(self, run_param): print run_param def run_parallel(self, num): processes = [] for i in xrange(num): p = multiprocessing.Process(target=self.run, args=(i,))
class ExampleClass:
def run(self, run_param):
print run_param
def run_parallel(self, num):
processes = []
for i in xrange(num):
p = multiprocessing.Process(target=self.run, args=(i,))
# should I pass self to args like
# p = multiprocessing.Process(target=self.run, args=(self, i))
processes.append(p)
for p in processes:
p.start()
for p in processes:
p.join()
由于您正在将
self.run
作为绑定方法传递,因此不需要将self
作为第一个参数传递给它:
p = multiprocessing.Process(target=self.run, args=(i,))
只有将未绑定方法作为target
参数传递给Process
时,才需要self
:
p = multiprocessing.Process(target=ExampleClass.run, args=(self, i))