我正在使用 python 的multiprocessing
模块同时处理多个函数。每个衍生进程的函数都获取一些初始输入参数,以及一个Pipe
将其结果发回的连接。由于各种原因,我必须使用像这样的单个进程,即Pool.map_async()
-methods 之类的工具不可用。
有时,我需要终止一个需要很长时间才能完成的进程。
根据流程文档:
警告:如果在相关进程正在使用管道或队列时使用此方法,则管道或队列可能会损坏并且可能无法被其他进程使用。类似地,如果进程获得了锁或信号量等,那么终止它很可能导致其他进程死锁。
我不担心第一部分,因为每个进程都有自己的管道对象,但是我如何确定一个进程是否“获得了锁或信号量”,和/或以对我的其余部分安全的方式终止程序?