【发布时间】:2020-05-12 21:22:56
【问题描述】:
我的cython有点问题,我的脚本功能如下:
class A(object):
@staticmethod
def subprocess_func(split_data):
do something
def multi_process(process_func, datas, process_num, *args):
manager = multiprocessing.Manager()
out_q = manager.Queue(process_num)
p = Pool(process_num)
each_num = math.ceil(len(datas)/process_num)
for i in range(process_num):
split_data = datas[i * each_num: (i + 1) * each_num]
p.apply_async(A.subprocess_func, args=(split_data,))
process_func 是类A 的静态方法,当不使用cython 编译时,它可以工作。但是用cython编译后,调用函数multi_process就卡住了,没有任何日志就无法进入subprocess_func。
但是,当我将函数 subprocess_func 移动到类 A 之外时,无论是否使用 cython 编译,它都可以工作。
cython:v0.29.13
【问题讨论】:
标签: python multiprocessing python-3.6 cython