如何结合多个True函数进程?

时间:2015-06-01 13:26:55

标签: python function python-2.7 while-loop python-multiprocessing

我是编程和python的新手,你能帮我解决一下我编写的代码吗?我不知道如何让它发挥作用。我必须上课吗?如何在多个函数中使用相同的变量?我需要多处理吗?

这是我的测试代码:

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()

它说我在最后一行是无效的语法。但我很确定即使没有语法我的代码也行不通,你能帮忙吗?什么可以改变?

1 个答案:

答案 0 :(得分:0)

很难说不知道你想用这个代码实现什么,但也许你不需要进程或线程。您是否尝试过生成器功能?

Workspace/.metadata/.plugins

这将使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组合。 (假设p3做了与p2不同的事情;否则你可以为两者使用相同的生成器函数。)总而言之,这可能比使用不同的线程和一些全局状态操作更清晰那些线程。