Я видел много примеров по этой теме, но я не могу найти подходящий ответ для меня. Мне нужна ваша помощь, чтобы узнать об этом. Предположим, у меня есть две функции funA() и funB(). Они принимают точно такие же аргументы. И функции возвращают два отдельных выхода, т.е. объект серии панд. Я хочу выполнять функции одновременно без GIL. Вот мой пример кода:Выполнять две разные функции одновременно в python 3.4.1
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
Пожалуйста, помогите мне , Заранее благодарю.
его дает ошибку: '_pickle.PicklingError: Не может Рассол < 'модуль' класса>: модуль подстановки атрибутов на встроенных командах failed' @John –
@sayak_SIBIA: пожалуйста, напишите полная запущенная программа, потому что я скопировал ваш код и добавил необходимые фрагменты, и он работал для меня как на Python 2, так и на Python 3. –