Phụ thuộc vào những gì bạn đang cố gắng hoàn thành. Tôi vẫn sử dụng chủ đề rộng rãi, và không có vấn đề gì lớn với họ.
Vấn đề lớn nhất với chúng là chúng không nhẹ, nếu bạn đã tạo luồng bằng các ngôn ngữ khác, bạn có thể mong đợi chúng.
Họ ngược lại - sinh sản một luồng giống như bắt đầu lại mã của bạn, nhưng với một số móc hữu ích cho IPC. Điều đó có nghĩa là bạn thực sự không muốn làm một mô hình nhiệm vụ theo chủ đề của chương trình, giống như bạn có thể nghĩ đến.
Thay vào đó, bạn sẽ được phục vụ tốt hơn theo mô hình kiểu công nhân-chủ đề Thread::Queue
. Dưới đây là một ví dụ về điều đó: Perl daemonize with child daemons
Tuy nhiên, bạn có thể muốn xem xét sử dụng fork
như một sự thay thế. fork
- bởi vì nó được thực hiện trên Unix - là một cuộc gọi hệ thống rất hiệu quả, và có thể khá hiệu quả cho việc sinh sản các quy trình mới. Nhược điểm là - nó không hoàn toàn thân thiện với việc thực hiện IPC.
Parallel::ForkManager
là một mô-đun mà tôi muốn thực hiện forking cho đa xử lý.
Nhưng trong cả hai trường hợp bạn nên lưu ý - đa xử lý không phải là một viên đạn ma thuật. Nó cho phép bạn hog nhiều CPU hơn nếu bạn có đúng loại vấn đề cần giải quyết. Nó sẽ không làm cho đĩa của bạn đi nhanh hơn :)
Câu trả lời tùy thuộc vào lý do bạn nghĩ bạn cần chuỗi. –
Liên quan: [Trường hợp sử dụng cho ithreads (chủ đề thông dịch viên) trong Perl và lý do để sử dụng hoặc không sử dụng chúng?] (Http://stackoverflow.com/q/9973860/176646) – ThisSuitIsBlackNot