如何在python中同时运行两个同步进程

时间:2019-11-27 08:30:49

标签: python multithreading multiprocessing python-multiprocessing python-multithreading

让两个过程function1,function2同时运行。 function1 //连续追加列表 function2 //从function1中获取列表,并从列表中获取所有数据,然后将其复制到另一个列表,刷新原始列表并处理复制的列表。

sample code:


list_p =[]
def function1(data):
     list_p.append(data)

def function2(list_p):
      list_q = list_p.copy()
      list_p.flush()
      x= process(list_q)
      return x

while True:
    //coming data continously
    function1(coming data)

因此,如何一次使用function1和function2,以便我可以从function1获取数据并对其进行刷新(刷新后,开始从0开始将function1中的索引追加),同时,可以追加list在function1中。

同时,在完成function2的处理后,function1可能会追加列表,而function 2可能会处理新列表,它再次获取在function2处理期间要追加的原始列表中的所有数据。

继续..

1 个答案:

答案 0 :(得分:1)

以下是使用Threading的示例。我在生产者中使用了input函数来代替数据流。 (它基于https://techmonger.github.io/55/producer-consumer-python/。)

from threading import Thread
from queue import Queue

q = Queue()
final_results = []

def producer():
    while True:
        i = int(input('Give me some number: '))  # here you should get data from data stream
        q.put(i)


def consumer():
    while True:
        number = q.get()
        result = number**2
        final_results.append(result)
        print(final_results)
        q.task_done()

t = Thread(target=consumer)
t.daemon = True
t.start()

producer()