在python 3.4.1中同时执行两个不同的函数

时间:2014-11-13 07:20:03

标签: python python-3.x pandas multiprocessing

我见过很多关于这个话题的例子,但是我找不到合适的答案。我需要你的帮助来了解这个问题。 假设,我有两个函数funA()和funB()。他们采取完全相同的论点。并且函数返回两个单独的输出,即pandas系列对象。我想在没有GIL的情况下同时执行这些功能。 这是我的代码示例:

from multiprocessing import Process
from queue import Queue
q1 = Queue()
q2 = Queue()
res1 = Process(target=funA,args=(a,b,c,q1))
res1.start()
res2 = Process(target=funB,args=(a,b,c,q2))
res2.start()
res1.join()
res2.join()
result1 = q1.get()
result2 = q2.get()

上述代码给出了以下追溯:

File "C:\Python34\lib\multiprocessing\reduction.py", line 59, in dump
 ForkingPickler(file, protocol).dump(obj)
_pickle.PicklingError: Can't pickle <class '_thread.lock'>: attribute lookup lock on _thread failed

我已经浏览了http://sebastianraschka.com/Articles/2014_multiprocessing_intro.html之类的线程, Concurrently run two functions that take parameters and return lists?Make 2 functions run at the same time

请帮帮我。提前感谢你。

1 个答案:

答案 0 :(得分:0)