2009-04-19 24 views
13

Do không có cuộc gọi Windows fork(), gói đa xử lý trong Python 2.6 được triển khai trong Windows như thế nào? Trên đầu trang của Win32 chủ đề hoặc một số loại ngã ba giả hoặc chỉ tương thích trên đầu trang của đa luồng hiện có?Xử lý đa nhân Python được triển khai trên Windows như thế nào?

+3

Nếu Adam đã trả lời câu hỏi của bạn, bạn nên đánh dấu nó là đã chấp nhận :-) –

Trả lời

29

Nó được thực hiện bằng cách sử dụng một cuộc gọi subprocess để sys.executable (tức là bắt đầu một quy trình Python mới) theo sau là serializing tất cả các hình cầu và gửi chúng qua đường ống. Một nhân bản của người nghèo trong quá trình hiện tại. Đây là nguyên nhân của số extra restrictions được tìm thấy khi sử dụng đa xử lý trên Windows plaform.

Bạn cũng có thể quan tâm xem Jesse Noller's talk from PyCon về cách xử lý đa nơi ông thảo luận về việc sử dụng nó.

+4

Adam đúng (Tôi là Jesse) - thật không may, nhưng tất cả các nhánh "triển khai" trên win32 đều là hack khủng khiếp. Vì vậy, chúng tôi bị mắc kẹt với subprocess và serialization – jnoller

+0

Cảm ơn rất nhiều cho một câu trả lời rõ ràng! –

+1

Jeff: bạn nên đánh dấu câu trả lời này là được chấp nhận nếu bạn hài lòng với nó. – Adam

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