Python:如果这是唯一的进程,则执行函数,否则向其他进程发送消息

时间:2011-08-15 20:44:46

标签: python multithreading

  

可能重复:
  Only one python program running (like Firefox)?

我正在尝试用Python编写一个程序来解压缩大型RAR档案。这可以使用例如使用例如Chilkat的提取库。

但是,我想一次只运行一个解包过程。因此,第一次执行Python程序时,它只是开始提取,但是如果我在第一个进程尚未完成时启动程序,我想向现有进程发送一条消息,说“嘿,一旦你提取了这个完成你现在所做的一切“。

我查看了multiprocessing类似Queue类看起来很有希望的库,但我仍然很难理解从哪里开始。

所以我的问题是:如何知道现有的“extracter”进程是否已经运行,然后如何向该进程的队列中添加内容?

1 个答案:

答案 0 :(得分:0)

Only one python program running (like Firefox)?中提出了一个类似的问题。为了使其适应您的需要,您应该让第一个进程建立FIFO,套接字等,然后开始工作。如果工作完成,它会查看FIFO / socket / ...以了解是否还有其他事情要做,然后继续或退出。

改进是让这个程序在两个线程中运行,一个用于解包,一个用于提供通信,以便让“其他”进程知道请求已被接受。