Chociaż patrząc na doc Pythona dla multiprocessing.terminate()
natknąłem się na następujący:Mulitprocessing wypowiedzieć i skorumpowanych kolejki
Terminate() If this method is used when the associated process is using a pipe or queue then the pipe or queue is liable to become corrupted and may become unusable by other process. Similarly, if the process has acquired a lock or semaphore etc. then terminating it is liable to cause other processes to deadlock.
które zasadniczo mówi, że jeśli zakończyć proces, który jest za pomocą kolejki, fajki lub podobny uruchomieniu ryzyko uszkodzenia struktury.
Mam kilka pytań na temat tego,
- Co stanie się inny proces próbuje pobrać dane z rury, kolejki lub podobne, jeśli występuje korupcja?
- W jaki sposób można sprawdzić proces, aby sprawdzić, czy nie ma korupcji?
- Czy zakleszczenie może zostać rozwiązane w jakikolwiek sposób, jeśli wiesz, że inny proces został zakończony?
Rozumiem, zawsze należy starać się nie używać zakończyć, ale to jest dla tej sytuacji, w której nie można zrobić nic innego, ale to
1. Podnosi IOError: [Errno 32] Broken pipe – andrean