同时将更改计数器int变量发送到另一个python脚本



我有两个python脚本,script1.py和script2.py。一个是独立递增int x的计数器,script2.py是每5秒获取int x的值,输入到script2.py中

在单独运行的Python脚本之间传递数据

我为script1应用了While True函数。这是我的尝试,但我不认为我理解一般的想法,我得到了各种错误,因为我是python的新手,我错过了一些细节。

script1.py:

from multiprocessing import Process, Pipe
x = 0
def function(child_conn):
global x
while True:
x += 1
print(x)
child_conn.send(x)
child_conn.close()

script2.py:

from multiprocessing import Proces,Queue,Pipe
from script1 import function
from time import sleep
if __name__=='__main__':
parent_conn,child_conn = Pipe()
p = Process(target=function, args=(child_conn,))
p.start()
print(parent_conn.recv())
time.sleep(5)

提前感谢!

您在子进程中有一个循环,但在父进程中没有循环。如果没有循环,子级只能发送一条消息,然后抛出一个错误。

试试这个代码。运行script2.py启动进程。

script1.py

from multiprocessing import Process, Pipe
from time import sleep
x = 0
def function(child_conn):
global x
while True:
x += 1
print(x)
child_conn.send(x)
#child_conn.close()
sleep(1)

script2.py

from multiprocessing import Process,Queue,Pipe
from script1 import function
from time import sleep
if __name__=='__main__':
parent_conn,child_conn = Pipe()
p = Process(target=function, args=(child_conn,))
p.start()
while True:
print(parent_conn.recv())
sleep(1)

相关内容

  • 没有找到相关文章

最新更新