如何在python中暂停并将信号从一个进程发送到另一个进程

如何在python中暂停并将信号从一个进程发送到另一个进程,python,multiprocessing,Python,Multiprocessing,python新手,所以这听起来像是一个基本问题。我有一个新的进程从主进程派生出来,与主进程并行地做一些事情。我不能在这种特殊情况下使用线程,因为有一些底层API线程问题。我试图在两个进程之间实现一些同步。我读过,但找不到一个与我的情况相符的恰当的例子。一些示例代码: import multiprocessing import signal def process_one(self): # Do something second_process = Process(target=s

python新手,所以这听起来像是一个基本问题。我有一个新的进程从主进程派生出来,与主进程并行地做一些事情。我不能在这种特殊情况下使用线程,因为有一些底层API线程问题。我试图在两个进程之间实现一些同步。我读过,但找不到一个与我的情况相符的恰当的例子。一些示例代码:

import multiprocessing
import signal
def process_one(self):
    # Do something
    second_process = Process(target=self.process_two)
    second_process.start()
    # Do something and send signal to process_two to unpause
    # Do other things
    second_process.join()

def process_two(self):
    # Do something
    # Now I want to pause this process till I receive a signal from
    # process_one
    signal.pause()
    # continue to do other things
正如我在评论中提到的,我正试图找到一种实现这一目标的方法。我看到的大多数示例都是针对
forks
。指针

使用


上面贴的例子正是我想要的

您的代码似乎是一个良好的开端。你在让它工作上有困难吗?@univerio是的!我不确定要定义什么样的信号并发送到
进程\u two
。我看到的只是一个
os.kill()
向另一个进程发送信号,但这不是我想要的。定义信号列表。特别是,
SIGCONT
似乎是一个合适的信号。为什么
os.kill()
不是你想要的?哦!我在密码里漏掉了。在第二个进程之后。join()在第一个进程死之前,我需要做一些其他的事情。因此,
os.kill()
是否会在主进程完成之前杀死它?与其使用信号,不如在
多处理
软件包的内置同步工具中找到更多的好处:。如果进程1锁定了一个
,那么进程2可以在适当的时候对此进行阻止。然后,进程1可以将其作为“信号”解锁。如果您需要更复杂的通信,那么队列是一个相当简单的下一步。