Hướng dẫn python multiprocessing process does not terminate - quá trình đa xử lý python không chấm dứt
Tôi đang cố gắng chạy nhiều yêu cầu API song song với Multiprocessing.Process và yêu cầu. Tôi đặt URL để phân tích cú pháp vào ví dụ có thể tham gia và đặt lại nội dung vào ví dụ hàng đợi. Tôi đã nhận thấy rằng việc đưa phản hồi. Incontent vào hàng đợi bằng cách nào đó ngăn không cho quá trình chấm dứt. Show Đây là ví dụ đơn giản hóa chỉ với 1 quy trình (Python 3.5):
Sau khi chạy mã tôi nhận được:
Vui lòng giúp hiểu lý do tại sao quá trình không chấm dứt sau khi chạy chức năng thoát. CẬP NHẬT: Đã thêm câu lệnh in để hiển thị vòng lặp chấm dứt
Đã hỏi ngày 23 tháng 5 năm 2018 lúc 8:34May 23, 2018 at 8:34
1 Như đã lưu ý trong tài liệu đường ống và hàng đợi
Nếu bạn chuyển sang hàng đợi người quản lý, thì quá trình sẽ chấm dứt thành công:
Đã trả lời ngày 12 tháng 11 năm 2019 lúc 9:49Nov 12, 2019 at 9:49
KimkimKim 6989 Huy hiệu bạc20 Huy hiệu Đồng9 silver badges20 bronze badges Một chút khó để tìm ra điều này dựa trên tài liệu Khái niệm chính ở đây là trước khi một chuỗi nhà sản xuất chấm dứt, nó tham gia bất kỳ hàng đợi nào mà nó có dữ liệu Có một số tài liệu về hàm Đây là một sửa đổi ví dụ, bạn có thể thực hiện điều đó sẽ khắc phục sự cố:
Đã trả lời ngày 5 tháng 9 năm 2019 lúc 18:48Sep 5, 2019 at 18:48
BrioniusbrioniusBrionius 13.6K3 Huy hiệu vàng36 Huy hiệu bạc48 Huy hiệu đồng3 gold badges36 silver badges48 bronze badges Thêm một cuộc gọi đến w.terminate () trên tin nhắn in. Liên quan đến lý do tại sao quá trình không chấm dứt chính nó; Mã chức năng của bạn là một vòng lặp vô hạn, vì vậy nó không bao giờ quay lại. Gọi chấm dứt tín hiệu quá trình để tự sát. Đã trả lời ngày 23 tháng 5 năm 2018 lúc 8:53May 23, 2018 at 8:53
Chen A.CHEN A.Chen A. 9.1473 Huy hiệu vàng37 Huy hiệu bạc54 Huy hiệu đồng3 gold badges37 silver badges54 bronze badges 2 Làm thế nào để khóa đa xử lý Python hoạt động?Python cung cấp một khóa loại trừ lẫn nhau để sử dụng với các quy trình thông qua đa xử lý. LỚP LỚN. Một thể hiện của khóa có thể được tạo và sau đó có được bởi các quy trình trước khi truy cập vào một phần quan trọng và được phát hành sau phần quan trọng. Chỉ có một quá trình có thể có khóa bất cứ lúc nào.An instance of the lock can be created and then acquired by processes before accessing a critical section, and released after the critical section. Only one process can have the lock at any time.
Pool trong đa xử lý Python là gì?Nhóm đa xử lý Python có thể được sử dụng để thực hiện song song một hàm trên nhiều giá trị đầu vào, phân phối dữ liệu đầu vào trên các quy trình (song song dữ liệu).Dưới đây là một ví dụ về nhóm đa xử lý Python đơn giản.parallel execution of a function across multiple input values, distributing the input data across processes (data parallelism). Below is a simple Python multiprocessing Pool example.
Chủ đề hàng đợi đa xử lý Python có an toàn không?Điều này bao gồm hàng đợi trong đa xử lý.Hàng đợi là chủ đề và quy trình an toàn.Điều này có nghĩa là các quy trình có thể nhận được các mục () và đặt () từ và đến hàng đợi đồng thời mà không sợ điều kiện chủng tộc.Bạn có thể tìm hiểu thêm về cách sử dụng hàng đợi với nhiều quy trình trong hướng dẫn: hàng đợi đa xử lý trong Python.Queues are thread and process safe. This means that processes may get() and put() items from and to the queue concurrently without fear of a race condition. You can learn more about to how to use queues with multiple processes in the tutorial: Multiprocessing Queue in Python.
Làm thế nào để xếp hàng đa xử lý Python hoạt động?Đa xử lý.Hàng đợi cung cấp hàng đợi FIFO đầu tiên, đầu tiên, có nghĩa là các mục được lấy từ hàng đợi theo thứ tự chúng được thêm vào.Các mục đầu tiên được thêm vào hàng đợi sẽ là các mục đầu tiên được truy xuất.provides a first-in, first-out FIFO queue, which means that the items are retrieved from the queue in the order they were added. The first items added to the queue will be the first items retrieved. |