Cách chạy fork trong window

Làm cách nào để triển khai một số logic cho phép tôi tái tạo trên Windows chức năng mà tôi có trên Linux bằng lệnh fork[]gọi hệ thống, sử dụng Python?

Tôi đặc biệt đang cố gắng thực thi một phương thức trên thành phần SAPI Com, trong khi tiếp tục logic khác trong luồng chính mà không bị chặn hoặc chờ đợi.

  • python
  • windows
  • process
  • subprocess
  • fork

22 hữu ích 0 bình luận 31k xem chia sẻ

answer

17

Sử dụng mô-đun đa xử lý python sẽ hoạt động ở mọi nơi.

Đây là bài viết dành cho nhà phát triển của IBM về cách chuyển đổi từ os.fork [] sang mô-đun đa xử lý.

17 hữu ích 2 bình luận chia sẻ

answer

10

fork[] có trong thực tế được nhân đôi trong Windows, dưới Cygwin , nhưng nó khá lông.

Lệnh fork trong Cygwin đặc biệt thú vị vì nó không liên kết tốt với Win32 API. Điều này làm cho nó rất khó thực hiện một cách chính xác.

Xem Hướng dẫn sử dụng Cygwin để biết mô tả về bản hack này.

10 hữu ích 0 bình luận chia sẻ

answer

3

Hãy xem các chức năng quản lý quy trình trong mô-đun hệ điều hành . Có chức năng để bắt đầu các quy trình mới theo nhiều cách khác nhau, cả đồng bộ và không đồng bộ.

Tôi cũng cần lưu ý rằng Windows không cung cấp chức năng giống hệt như fork [] trên các hệ thống khác. Để thực hiện đa xử lý trên Windows, bạn sẽ cần sử dụng mô-đun phân luồng .

3 hữu ích 1 bình luận chia sẻ

answer

3

Ví dụ về Threading từ Eli sẽ chạy luồng, nhưng không thực hiện bất kỳ công việc nào sau dòng đó.

Tôi sẽ xem xét mô-đun xử lý và mô-đun quy trình con. Tôi nghĩ rằng phương thức com mà tôi đang chạy cần phải ở trong một quy trình khác, không chỉ trong một chuỗi khác.

3 hữu ích 1 bình luận chia sẻ

answer

3

Ngoài mã quản lý quy trình trong mô-đun hệ điều hành mà Greg đã chỉ ra, bạn cũng nên xem qua mô-đun phân luồng: //docs.python.org/library/threading.html

from threading import Thread def separate_computations[x, y]: print sum[x for i in range[y]] # really expensive multiplication Thread[target=separate_computations, args=[57, 83]].start[] print "I'm continuing while that other function runs in another thread!"

3 hữu ích 0 bình luận chia sẻ

answer

2

Bạn cũng có thể thích sử dụng mô-đun xử lý [ //pypi.python.org/pypi/processing ]. Nó có rất nhiều chức năng để viết các hệ thống song song với cùng một API như mô-đun phân luồng ...

2 hữu ích 1 bình luận chia sẻ

answer

0

0 hữu ích 1 bình luận chia sẻ

Đăng nhập để trả lời câu hỏi

Có thể bạn quan tâm

Chủ Đề