python - 什么相当于使用 python 的 Windows 中的 sigusr1-2 信号?

标签 python windows signals ipc

拜托,我需要一些帮助。我正在努力在 Windows 中的两个 python 进程之间发送通知。

我查看了信号模块,但不幸的是,Windows 不支持用户定义的信号。

Windows 使用其他称为消息的东西,但我不知道它是如何工作的或如何在 python 中使用它。如果有人对在 python 中的进程之间发送消息有想法或起点,我们将不胜感激。

最佳答案

这实际上取决于您要寻找的是什么 - 您是想要控制消息、非阻塞消息,还是像通常使用 signal 模块那样捕获外部信号的能力。

因为你想发送“两个 python 进程之间的通知”,我推荐 multiprocessing.connection 模块的 Client 和 Listener 类,用于一对非常简单的面向消息的连接对象:

http://docs.python.org/2/library/multiprocessing.html#module-multiprocessing.connection

进程A:

listener = Listener(('localhost', 9000)) # local TCP connections on port 9000
remote_conn = listener.accept()
listener.close()
print remote_conn.recv()
# prints 'a pickle-able object'
print remote_conn.recv()
# prints "['another', 'pickle-able', 'object']"

进程 B:

client = Client(('localhost', 9000))
client.send('a pickle-able object')
client.send(['another', 'pickle-able', 'object'])

这些类是内置的这一事实让我很高兴——无需安装!只需小心遵循有关安全和 un-pickling 数据的文档指南。

关于python - 什么相当于使用 python 的 Windows 中的 sigusr1-2 信号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16429480/

相关文章:

python - 预期为 ")"皮兰斯

python - 父子进程之间的通信

c++ - 如何在 Windows 上的 Release模式下避免 "program.exe has stopped working"窗口?

linux - 在pause()之前进行上下文切换会导致丢失信号吗?

c - 信号引发事件停止了 Linux 中的复制过程

python - 服务器如何根据客户端输入执行不同的任务?

python - 根据时间对字典列表值进行排序

windows - 如何通过命令提示符禁用和启用 USB 端口?

c - 如何在 C 语言中通过串行端口发送 0xff 字节?

qt - 无法将信号连接到另一个类中的插槽