请问关于apply_async对文件操作的问题

你好,我想使用multiprocessing对一个文件进行操作,但是没有达到预期效果..代码如下,传入文件流后,子进程并没有运行,连打印输出都没有,请问如何解决?


from multiprocessing.pool import Pool


def filetest(ff):
    print("f!")
    print(ff.name)
    print(ff.read(20))
    print("ff!")


if __name__ == '__main__':
    p = Pool(2)
    f = r'C:\Users\77395\Downloads\1.ts'
    ff = open(f, 'rb')
    for i in range(0,5):
        p.apply_async(filetest, args=(ff,))
    p.close()
    p.join()
阅读 2.2k
1 个回答

file object 不能被pickle

from multiprocessing.pool import Pool


def filetest(content):
    print content

if __name__ == '__main__':
    p = Pool(2)
    f = r'./1.txt'
    ff = open(f, 'rb')
    p.map_async(filetest, ff)
    p.close()
    p.join()
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题