如何组合多个 while True 函数进程?
How to combine multiple while True function processes?
我是编程新手,python,你能帮我写下代码吗?我不知道如何让它工作。我必须使用 class 吗?另外如何在多个函数中使用同一个变量?我需要多处理吗?
这是我的测试代码:
from time import sleep
from multiprocessing import Process
def p1():
while True:
a = 1+1
sleep(1)
def p2():
while True:
b = 1+1
sleep(1)
def p3():
while True:
c = a+b
print c
sleep(1)
try:
a1 = Process(target = p1)
a2 = Process(target = p2)
a3 = Process(target = p3)
a1.start()
a2.start()
a3.start()
它说我在最后一行有一个无效的语法,它是空的。但我很确定即使没有语法我的代码也无法工作,你能帮忙吗?可以改变什么?
如果不知道您究竟想用该代码实现什么,很难说清楚,但也许您不需要进程或线程。您是否尝试过生成器函数?
def p1(a=0):
while True:
yield a
a = a + 1
def p2(b=0):
while True:
yield b
b = b + 1
def p3(a, b):
c = a + b
print c
a_gen = p1()
b_gen = p2(3)
for _ in range(5):
a = next(a_gen)
b = next(b_gen)
p3(a, b)
这将使 p1
和 p2
从各自的算法中生成连续的值,并且 return 它们将由 p3
组合。 (假设 p2
做的事情与 p1
不同;否则你可以对两者使用相同的生成器函数。)总而言之,这可能比使用不同的线程和由那些线程。
我是编程新手,python,你能帮我写下代码吗?我不知道如何让它工作。我必须使用 class 吗?另外如何在多个函数中使用同一个变量?我需要多处理吗?
这是我的测试代码:
from time import sleep
from multiprocessing import Process
def p1():
while True:
a = 1+1
sleep(1)
def p2():
while True:
b = 1+1
sleep(1)
def p3():
while True:
c = a+b
print c
sleep(1)
try:
a1 = Process(target = p1)
a2 = Process(target = p2)
a3 = Process(target = p3)
a1.start()
a2.start()
a3.start()
它说我在最后一行有一个无效的语法,它是空的。但我很确定即使没有语法我的代码也无法工作,你能帮忙吗?可以改变什么?
如果不知道您究竟想用该代码实现什么,很难说清楚,但也许您不需要进程或线程。您是否尝试过生成器函数?
def p1(a=0):
while True:
yield a
a = a + 1
def p2(b=0):
while True:
yield b
b = b + 1
def p3(a, b):
c = a + b
print c
a_gen = p1()
b_gen = p2(3)
for _ in range(5):
a = next(a_gen)
b = next(b_gen)
p3(a, b)
这将使 p1
和 p2
从各自的算法中生成连续的值,并且 return 它们将由 p3
组合。 (假设 p2
做的事情与 p1
不同;否则你可以对两者使用相同的生成器函数。)总而言之,这可能比使用不同的线程和由那些线程。