Mentre guardando il doc python per multiprocessing.terminate()
mi sono imbattuto il seguente:Mulitprocessing, terminare e le code corrotti
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.
che dice in sostanza se si termina un processo che utilizza una coda, tubo o simile si esegue il rischio che la struttura si corrompa.
Ho un paio di domande su questo,
- Che ne sarà di un altro processo cercando di recuperare i dati dal tubo, coda o simili in caso di corruzione?
- Come può un processo verificare se c'è corruzione?
- Il deadlock può essere risolto in qualsiasi modo se si conosce un altro processo è stato terminato?
ho capito che si dovrebbe sempre cercare di non utilizzare per terminare, ma questo è per quella situazione in cui non si può fare altro che questo
1. Solleva IOError: [Errno 32] Tubo rotto – andrean