2010-09-21 30 views
9

Tôi có một số tác vụ trong ứng dụng bị ràng buộc CPU và tôi muốn sử dụng mô-đun đa xử lý để sử dụng bộ xử lý đa lõi. Tôi thực hiện một nhiệm vụ lớn (phân tích tệp video) và tôi chia nó thành nhiều tác vụ nhỏ hơn được xếp vào hàng đợi và được thực hiện bởi các quy trình công nhân. Điều tôi muốn biết là cách báo cáo tiến trình cho quy trình chính từ các quy trình công nhân này. Ví dụ tôi cần họ gửi "Tôi đang ở 1000ms phân tích của tôi về tập tin 1". Cách tốt nhất để thực hiện báo cáo tiến độ như vậy là gì?Xử lý đa Python: báo cáo tiến trình từ các quy trình

+0

Bạn có hỏi về việc sử dụng mô-đun 'đăng nhập' không? –

+0

Không, tôi muốn báo cáo tiến độ từ các quy trình công nhân để sử dụng trong quy trình chính. Tôi sử dụng mô-đun "đa xử lý". –

+0

Báo cáo tiến độ từ các quy trình công nhân để sử dụng trong quy trình chính có thể được thực hiện thông qua mô-đun 'đăng nhập'. Tại sao bạn nói nó không thể được thực hiện? –

Trả lời

14

Tôi muốn giới thiệu một multiprocessing.Queue: không có gì dễ dàng hơn cho các quy trình của nhân viên để đăng cập nhật của họ (có lẽ là bộ dữ liệu với các khía cạnh khác nhau của bản cập nhật tiến trình của họ) ở đó, trong khi quá trình chính chỉ chờ các thông báo như vậy và khi họ cập nhật GUI (hoặc giao diện người dùng văn bản ;-) để giữ cho người dùng đánh giá tiến độ.

+0

Cảm ơn. Tôi nghĩ rằng đó là giải pháp đơn giản nhất. Tôi hiện đang triển khai và tôi sẽ hỏi lại nếu có sự cố. Xin lỗi nhưng tôi không thể bỏ phiếu cho bài đăng của bạn vì tôi không có đủ danh tiếng. –

+0

@Marc, tôi tin rằng với 11 hoặc nhiều hơn (và tôi thấy bạn ở tuổi 18) bạn _can_ upvote. Nếu nó không làm việc cho bạn, bạn có thể muốn hỏi về meta! –

+0

Tôi đã không đủ ngày hôm qua. Bây giờ tôi upvoted bài viết của bạn :) –

Các vấn đề liên quan