Tôi có một mẫu người tiêu dùng sản xuất đơn giản được thiết lập trong một phần mã gui của tôi. Tôi đang cố gắng để chỉ cấu hình phần người tiêu dùng cụ thể để xem có cơ hội tối ưu hóa hay không. Tuy nhiên, khi cố gắng để chạy mã với python -m cProfile -o out.txt myscript.py
Tôi nhận được một lỗi được ném từ mô-đun pickle
của Python.Mã hóa hồ sơ Python sử dụng đa xử lý?
File "<string>", line 1, in <module>
File "c:\python27\lib\multiprocessing\forking.py", line 374, in main
self = load(from_parent)
File "c:\python27\lib\pickle.py", line 1378, in load
return Unpickler(file).load()
File "c:\python27\lib\pickle.py", line 858, in load
dispatch[key](self)
File "c:\python27\lib\pickle.py", line 880, in load_eof
raise EOFError
EOFError
Các mô hình cơ bản trong mã là
class MyProcess(multiprocessing.Process):
def __init__(self, in_queue, msg_queue):
multiprocessing.Process.__init__(self)
self.in_queue = in_queue
self.ext_msg_queue = msg_queue
self.name == multiprocessing.current_process().name
def run(self):
## Do Stuff with the queued items
này thường được đưa nhiệm vụ từ phía GUI của sự vật, nhưng đối với mục đích thử nghiệm, tôi thiết lập nó như sau.
if __name__ == '__main__':
queue = multiprocessing.Queue()
meg_queue = multiprocessing.Queue()
p = Grabber(queue)
p.daemon = True
p.start()
time.sleep(20)
p.join()
Nhưng khi thử bắt đầu tập lệnh, tôi nhận được thông báo lỗi ở trên.
Có cách nào xung quanh lỗi không?