我正在尝试用Python编写一个程序来解压缩大型RAR档案。这可以使用例如使用例如Chilkat的提取库。
但是,我想一次只运行一个解包过程。因此,第一次执行Python程序时,它只是开始提取,但是如果我在第一个进程尚未完成时启动程序,我想向现有进程发送一条消息,说“嘿,一旦你提取了这个完成你现在所做的一切“。
我查看了multiprocessing类似Queue
类看起来很有希望的库,但我仍然很难理解从哪里开始。
所以我的问题是:如何知道现有的“extracter”进程是否已经运行,然后如何向该进程的队列中添加内容?
答案 0 :(得分:0)
在Only one python program running (like Firefox)?中提出了一个类似的问题。为了使其适应您的需要,您应该让第一个进程建立FIFO,套接字等,然后开始工作。如果工作完成,它会查看FIFO / socket / ...以了解是否还有其他事情要做,然后继续或退出。
改进是让这个程序在两个线程中运行,一个用于解包,一个用于提供通信,以便让“其他”进程知道请求已被接受。