以下是来源:
#one.py:
from Queue import Queue
req = Queue()
#two.py:
import one
import time
if __name__ == '__main__':
while True:
print "this is two.py and reqID is ",id(one.req)
print "Queue size is %s"%one.req.qsize()
time.sleep(5)
#three.py:
import one
import time
if __name__ == '__main__':
while True:
print "this is three.py and reqID is ",id(one.req)
print "Queue size is %s"%one.req.qsize()
one.req.put(2)
time.sleep(5)
one.py
有一个共同的队列。我想使用two.py
和three.py
来控制one.py
的公共队列。
答案 0 :(得分:0)
根据您的目的,我们会想到一些选项:
Queue
系统。import two, three
,从one.py中定义fork过程。可能会使用multiprocessing
。我不是100%确定Queue
是否能在完全分叉的进程中正常工作。 multiprocessing
包也有自己的Queue
类。第二种选择可能就是我要做的。在.py和three.py中的函数需要以Queue
作为参数。
答案 1 :(得分:0)
两个不同的程序无法直接访问彼此的数据。这在操作系统上下文中称为进程隔离:
http://en.wikipedia.org/wiki/Process_isolation
您需要使用进程间通信。参见:
http://en.wikipedia.org/wiki/Inter-process_communication
python标准库中的IPC功能示例: